코딩테스트 연습
프로그래머스 코딩테스트 연습 - 가장 가까운 같은 글자 JavaScript
citron031
2022. 12. 24. 15:22
function solution(s) {
const answer = [];
const obj = {};
s.split("").forEach((el, idx) => {
if(obj[el] === undefined) {
answer.push(-1);
} else {
answer.push(idx - obj[el]);
}
obj[el] = idx;
})
return answer;
}
비교적 쉬운 문제였지만, 고려해야할 점이 있었다.
객체로 각 문자가 등장한 최신의 인덱스를 계산하였는데, 해당 문자의 인덱스를 계산하는 과정에서 오류가 있었다.
0이나 undefined은 모두 falsy이므로, 조건문에서 거짓으로 처리되어버리는 문제가 있었다.
따라서, 0을 인덱스로 가질 때 문제가 발생했었다.
정확히 undefined일때만 -1을 넣어주게 처리함으로써 문제를 해결할 수 있었다.