
처음 문제를 받고,
function solution(s) {
let answer = [];
s.split('').map((element, index)=>
{
let position = -1;
for(let i = index - 1; i >= 0; i--)
{
if(s[i] == element)
{
position = index - i
break;
}
}
answer.push(position)
})
return answer;
}
위와 같이 반복문으로 현재 단어 index - 1 ~ 0까지
탐색하면서 단어가 있을 경우
position = index - i로 몇 칸 떨어져 있는지 저장하고,
break문으로 반복을 탈출하는 식으로 했다.
다른 사람들의 코드를 확인하니,
function solution(s)
{
return s.split('').map((element, index)=>
{
const count = s.slice(0, index).lastIndexOf(element);
return count < 0 ? count : index - count;
})
}
로 s.slice로 0 ~ 해당 단어 - 1까지 자른 후
lastIndexOf(찾고자 하는 단어)로
찾고자 하는 단어가 앞에 있는지 확인해줬다.
lastIndexOf()는
해당 찾고자 하는 값이 있으면 : 마지막 index
해당 찾고자 하는 값이 없으면 : -1
를 반환한다.
이후,
count < 0으로 찾고자 하는 값이 없으면 -1
찾고자 하는 값이 있으면 index - count로
몇 칸 앞에 있는지 반환해줬다.
제출한 코드 :
function solution(s) {
return s.split('').map((element, index)=>
{
const count = s.slice(0, index).lastIndexOf(element);
return count < 0 ? count : index - count;
})
}
'문제 풀기 > JavaScripts' 카테고리의 다른 글
문제 52. 콜라 문제 (0) | 2024.07.31 |
---|---|
문제 51. 푸드 파이트 대회 (0) | 2024.07.31 |
문제 49. 두 개 뽑아서 더하기 (0) | 2024.07.31 |
문제 48. K번째수정렬 (0) | 2024.07.31 |
문제 47. 문자열 내 마음대로 정렬하기(sort 복습) (0) | 2024.07.29 |