항상 C++로 문제를 풀면서 i - 1 로 for문을 돌리면 0번째 인덱스가,
i + 1로 for문을 돌리면 마지막 인덱스에서 에러가 나서,
허접인 주제에 너무 문제를 깔끔하게 싹 풀려고 했던 것 같다.
(0번째 인덱스, 혹은 마지막 인덱스 예외를 주더라도 문제를 푸는게 중요한건데 ㅜ.ㅜ)자바스크립트에선 그냥 원소 추가가 자유롭다는걸 잊고 있었다.....
let cnt = 1;
let answer = '';
s = s + ' ';
for (let i = 0; i < s.length - 1; i++) {
if (s[i] === s[i + 1]) cnt++;
else {
answer += s[i];
if (cnt > 1) answer += String(cnt);
cnt = 1;
}
}
return answer;
}
let str = 'KKHSSSSSSSE';
console.log(solution(str));
내가 놓친 점들
- 인덱스 범위 초과에 대해서 너무 쫄아서 시도조차 안했음
-> 항상 첫 원소는 따로 빼주고 i - 1로 하는 것이 안전하다고 생각했음- cnt = 1로 둘 생각을 못했음 ( 왜 항상 0으로 해야한다고 강박을 가졌는지..)
- 불필요하게
alphabet = s[i]
,n = s.length
라는 변수를 선언했음 (굳이 필요없었음)