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;
}
오늘도 하나 배워갑니다…
반응형
'🔥 Javascript > 🔸 알고리즘' 카테고리의 다른 글
Javascript) 프로그래머스 - 가장 많이 받은 선물 (0) | 2024.09.22 |
---|---|
Javscript ) 프로그래머스 - [PCCP 기출문제] 1번 / 동영상 재생기 (0) | 2024.09.21 |
JavaScript) 프로그래머스 크기가 작은 부분문자열 (0) | 2023.01.29 |
JavaScript) 프로그래머스 개인정보 수집 유효기간 (0) | 2023.01.29 |
JavaScript) 프로그래머스 다음에 올 숫자 (0) | 2023.01.29 |