[JS] 프로그래머스 / 코딩테스트 연습 / 대충 만든 자판

2024. 1. 12. 20:44· 코딩 테스트/programmers
목차
  1. 문제
  2. 정답
 

문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

정답

function solution(keymap, targets) {
  let answer = [];

  for (let i = 0; i < targets.length; i++) {
    let target = targets[i].split("");
    let minArr = [];
    // isImpossible은 찾는 글자가 없는 경우 flag 처리할 변수
    let isImpossible = false;
    for (let j = 0; j < target.length; j++) {
      let countArr = [];
      for (let k = 0; k < keymap.length; k++) {
        // 찾는 글자의 인덱스 값을 구한다
        let textIndex = keymap[k].indexOf(target[j]);
        // 찾는 글자가 있을 때(textIndex가 -1이 아님)는 textIndex + 1을 countArr에 푸시한다
        if (textIndex > -1) countArr.push(textIndex + 1);
      }

      // countArr의 길이가 0이면 찾는 글자가 없다는 뜻
      // 이때 isImpossible을 true로 바꾸고 반복문에서 빠져나온다
      if (countArr.length === 0) {
        isImpossible = true;
        break;
        // countArr의 길이가 0이 아니면 찾는 글자가 있다는 뜻
        // countArr에서 가장 작은 숫자(찾는 글자의 인덱스 경우의 수 중 최소)를 minArr에 푸시한다
      } else {
        minArr.push(Math.min(...countArr));
      }
    }
    // 찾는 글자가 없으면 -1을 answer 배열에 푸시한다
    if (isImpossible) {
      answer.push(-1);
      // 찾는 글자가 있으면 minArr의 합을 answer 배열에 푸시한다
    } else {
      answer.push(minArr.reduce((a, b) => a + b));
    }
  }

  return answer;
}
 
 
 
저작자표시 비영리 변경금지 (새창열림)
  1. 문제
  2. 정답
'코딩 테스트/programmers' 카테고리의 다른 글
  • [JS] 프로그래머스 / 코딩테스트 연습 / 크레인 인형뽑기
  • [JS] 프로그래머스 / 코딩테스트 연습 / 둘만의 암호
  • [JS] 프로그래머스 / 코딩테스트 연습 / 문자열 나누기
  • [JS] 프로그래머스 / 코딩테스트 입문 / 정수를 나선형으로 배치하기
카버
카버
카버의 코딩일기카버 님의 블로그입니다.
카버
카버의 코딩일기
카버
  • All (414)
    • JavaScript (36)
    • CSS (1)
    • TypeScript (6)
    • React (17)
    • Redux (6)
    • Next.js (13)
    • Gatsby (2)
    • 코딩 테스트 (305)
      • programmers (238)
      • Baekjoon (51)
      • CroCoder (15)
    • ETC (28)
      • Error (9)
      • CS (8)
      • Terminal (2)
      • GitHub (1)
hELLO · Designed By 정상우.v4.2.2
카버
[JS] 프로그래머스 / 코딩테스트 연습 / 대충 만든 자판
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.