코딩테스트 연습
프로그래머스 코딩테스트 연습 - 대충 만든 자판 JavaScript
citron031
2023. 3. 1. 15:14
이번 문제는 해결은 어렵지 않았으나, 처음 봤을 때 문제를 이해하기가 어려웠다.
function solution(keymap, targets) {
const answer = [];
const keyMapObj = {};
keymap.forEach(el => {
for(let i = 0; i < el.length; i++) {
if(!keyMapObj[el[i]] || keyMapObj[el[i]] > i + 1) {
keyMapObj[el[i]] = i + 1;
}
}
});
for(let i = 0; i < targets.length; i++) {
let count = 0;
for(j of targets[i]) {
if(!keyMapObj[j]) {
count = -1;
break;
}
count += keyMapObj[j];
}
answer.push(count);
}
return answer;
}
결론적으로는, 객체로 최단 접근 값을 구하고 그 값을 바탕으로 가장 빠르게 타겟을 생성하는 알고리즘을 작성할 수 있었다.
문제 해결 후 다른 사람이 작성한 코드를 확인하였는데, 다양한 해결 방법이 있는 것 같았다.
어떤 방법이 더 효율적인가 생각해볼 여지가 있는 문제인 것 같다.