코딩테스트 연습

프로그래머스 코딩테스트 연습 - 가장 가까운 같은 글자 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을 넣어주게 처리함으로써 문제를 해결할 수 있었다.