안녕하세요
프로그래머스 JS [가장 가까운 같은 글자] 본문
가장 가까운 같은 글자
입출력 예sresult
"banana" | [-1, -1, -1, 2, 2, 2] |
"foobar" | [-1, -1, 1, -1, -1, -1] |
문제 요약
banana
처음 나온 글자는 -1로 표시
b => -1
a => -1
n => -1
두번째 부터는 앞에 나온 글자와의 간격 표시
a => 2칸 앞
n => 2칸 앞
a => 2칸 앞
1. 처음 나왔다면 answer 배열에 -1 추가
if (!Object.keys(alphabet).includes(el)) {
answer.push(-1);
2. 처음 나온 문자와 문자의 index를 alphabet Object에 추가
=> {b:0}
alphabet[el] = index;
3. 처음 나온 문자가 아니라면 answer에 (현재 index - alphabet Object)에 있는 해당 문자의 인덱스를 추가
banana
현재인덱스 5, 앞에 나온 인덱스 3
=> (5-3)을 배열에 추가
answer.push(index - alphabet[el]);
4. lphabet Map의 index를 현재 index로 업데이트
{n:3} => {n:5}
alphabet[el] = index;
function solution(s) {
var answer = [];
const alphabet = {};
s.split("").forEach((el, index) => {
if (!Object.keys(alphabet).includes(el)) {
answer.push(-1);
alphabet[el] = index;
} else {
answer.push(index - alphabet[el]);
alphabet[el] = index;
}
});
console.log(answer);
return answer;
}
solution("banana");
'프로그래머스 > Lv.1' 카테고리의 다른 글
프로그래머스 JS [과일 장수] (0) | 2023.01.19 |
---|---|
프로그래머스 JS [다트 게임] (0) | 2023.01.15 |
프로그래머스 JS [푸드 파이트 대회] (0) | 2023.01.13 |
프로그래머스 JS [크기가 작은 부분 문자열] (0) | 2023.01.13 |
프로그래머스 JS [콜라 문제] (0) | 2022.10.30 |