JavaScript) 프로그래머스 가장 가까운 같은 글자

banana 라는 단어를 b > a > n > a > n > a 순서대로 자신을 기준 앞에 가장 가까운 글자가 몇 칸 앞에 있는지 리턴하는 문제이다.

예를 들어 가장 마지막 단어 a는 index 1과 3에 같은 값이 있지만,
마지막 a에 가장 가까운 index 3번과의 칸 수 2를 리턴한다.

필자 풀이

function solution(s) {
    const answer = [...s].map((val, idx) => {
       const findValue = [...s.slice(0, idx)].reverse().findIndex((val) => val === s[idx])
       return findValue + (findValue < 0 ? 0: 1)
    })
    return answer;
}


필자는 단어를 거꾸로 재배열하여 findIndex로 문제를 풀었다.
javascript에 lastIndexOf가 있는지 모르고…^^ㅎ


풀이 수정

function solution(s) {
    const answer = [...s].map((val, idx) => {
       const findIdx = s.slice(0, idx).lastIndexOf(val)
       return findIdx < 0 ? findIdx : idx - findIdx
    })
    return answer;
}


오늘도 하나 배워갑니다…

반응형