728x90
이번 문제는 해결은 어렵지 않았으나, 처음 봤을 때 문제를 이해하기가 어려웠다.
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;
}
결론적으로는, 객체로 최단 접근 값을 구하고 그 값을 바탕으로 가장 빠르게 타겟을 생성하는 알고리즘을 작성할 수 있었다.
문제 해결 후 다른 사람이 작성한 코드를 확인하였는데, 다양한 해결 방법이 있는 것 같았다.
어떤 방법이 더 효율적인가 생각해볼 여지가 있는 문제인 것 같다.
728x90
'코딩테스트 연습' 카테고리의 다른 글
프로그래머스 코딩테스트 연습 - 바탕화면 정리 JavaScript (0) | 2023.03.22 |
---|---|
프로그래머스 코딩테스트 연습 - 혼자서 하는 틱택토 JavaScript (0) | 2023.03.05 |
프로그래머스 코딩테스트 연습 - 카드 뭉치 JavaScript (0) | 2023.02.25 |
프로그래머스 코딩테스트 연습 - 숫자 변환하기 JavaScript (0) | 2023.02.11 |
프로그래머스 코딩테스트 연습 - 뒤에 있는 큰 수 찾기 JavaScript (0) | 2023.02.05 |