js 프로그래머스 대충만든 자판

이명진·2023년 2월 24일
0

코드카타

목록 보기
62/69

따끈따끈한 문제이다. 문제를 풀다가 봤는데 새로 나와서 바로 풀어봤다.

문제요약

이전 오락실에서 게임후 랭킹을 매길때 이름 을 적은 기억이 있다면 쉽다. 조이스틱으로 알파벳 A 부터 숫자까지 고를수 있는데
이와 같이 자판이 주어지고 버튼 한번씩 누를때마다 주어진 자판에 맞춰 키가 바뀐다.
타겟과 키가 주어지는데 키는 여러개일수도 있다. 이중 타겟에 맞는 언어를 최소 언어로 누른 개수를 리턴하면 된다.

내가 푼풀이

반복문을 여러번 돌렸다. 처음 문제 풀때 11번을 틀렸는데 Math.min값을 정할때 999이 큰값으로 책정해서 돌렸는데
틀렸다. 999번째 값도 있나보다. infinity 값으로 바꿔서 판별했는데 통과할수 있었다. infinity값으로 바꿨을때 채점 스피드도 많이 올랐다.

function solution(keymap, targets) {
    let answer = [];
    let pressKey= 0;
    
    targets.forEach((x)=>{
      for(let i=0; i<x.length;i++){
        let count = Infinity;
         keymap.forEach((key)=>{
          let idx = key.indexOf(x[i])

           if(idx>-1){
             count = Math.min(count,idx+1)
           }

          })
       pressKey+=count
      }
      answer.push(pressKey)
     pressKey=0;
    })
    answer = answer.map(x=>{
      if(x==Infinity){
        x=-1
      }
      return x
    })
    return answer;
}

그냥 쉽게 타겟 하나씩 돌려가며 비교를 한후에 인덱스가 적은것들을 구해서 더해줬다.

다른사람들도 이렇게 푼듯 하다.

profile
프론트엔드 개발자 초보에서 고수까지!

0개의 댓글