❓ 문자열 압축 : i+1에서 마지막 원소가 걱정되면 빈원소를 넣어!

frenchkebab·2021년 8월 20일
0
post-thumbnail

항상 C++로 문제를 풀면서 i - 1for문을 돌리면 0번째 인덱스가,
i + 1for문을 돌리면 마지막 인덱스에서 에러가 나서,
허접인 주제에 너무 문제를 깔끔하게 싹 풀려고 했던 것 같다.
(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 라는 변수를 선언했음 (굳이 필요없었음)
profile
Blockchain Dev Journey

0개의 댓글