[프로그래머스] 대충 만든 자판 (JS)

hhkim·2023년 7월 16일
0

Algorithm - JavaScript

목록 보기
66/188
post-thumbnail

풀이 과정

  1. targets 배열의 각 문자열에 대해 반복하면서 결과 변경: map()
  2. 1의 각 문자 대해 반복하면서 합산: reduce()
  3. keymap의 각 요소 중 현재 문자가 들어있는 위치를 찾고 최솟값 구하기: indexOf()

코드

function solution(keymap, targets) {
  return targets.map((target) =>
    [...target].reduce((result, c) => {
      if (result < 0) return -1;
      let i;
      keymap.forEach((key) => {
        const tmp = key.indexOf(c);
        if (i === undefined || i < 0) i = tmp;
        else if (tmp >= 0 && tmp < i) i = tmp;
      });
      return i < 0 ? -1 : result + i + 1;
    }, 0)
  );
}

0개의 댓글