프로그래머스
자바스크립트 가장 가까운 같은 글자
늘곰's
2023. 9. 25. 22:41
//가장 가까운 같은 글자
// s[n] 값이 자신보다 앞에 나왔으면서 자신과 가장 가까운 곳에 있는 같은 글자가 어디있는지 찾는것
// s[n] 보다 앞에 같은 글자가 없으면 -1 있으면 가장 가까운 칸의 위치
// 만약 s[i] 가 answer 안에 없다면 answer.push() / includes 사용
// const str = "banana";
// console.log(str.indexOf('a')); // 1 (첫 번째 'a'의 인덱스)
// console.log(str.lastIndexOf('a')); // 5 (마지막 'a'의 인덱스)
function solution(s) {
var answer = [];
var arr = [];
for (let i = 0; i < s.length; i++) {
//console.log(s[i]);
// let index = s.lastIndexOf(s[i]); b:0 a:5 n:4 a:5 n:4 a:5
//console.log(index);
if (!arr.includes(s[i])) {
arr.push(s[i]);
answer.push(-1);
} else {
answer.push(arr.length - arr.lastIndexOf(s[i]));
//이코드랑 arr.push(s[i]) 랑 위치를 바꾸면 [ -1, -1, -1, 1, 1, 1 ] 됨
// arr = [b, a, n, a] 4(answer의length 개수)-3(마지막 a의 index)
// arr = [b, a, n, a, n] 5(answer의length 개수)-4(마지막 n의 index)
// 이런식으로 전개되기 때문에 arr.push(s[i]);가 먼저 오면 안됨
arr.push(s[i]);
}
}
//console.log(arr);
//console.log(answer);
return answer;
}
console.log(solution("banana"));