인프런 커뮤니티 질문&답변

wyswhsl21님의 프로필 이미지
wyswhsl21

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

5. 문자열 압축

splice 를 이용해서 풀어봤습니다. 이렇게 풀어도 될까요?!

작성

·

218

0

처음에 answer을 배열로 만들게 되서 중복제거와 join 을 시키게 되면서 코드의 양이 좀 많아진거 같습니다.

function sol(arr) {
  let answer = arr.split('');
  let s = arr[0];
  let ctn = 1;
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] === s) {
      s = arr[i];
      ctn++;
    } else {
      s = arr[i];
      if (ctn > 1) {
        answer.splice(i, 0, ctn);
        ctn = 1;
      }
    }
  }
  answer = new Set([...answer]);
  answer = [...answer].join('');
  return answer;
}
console.log(sol('KKHSSSSSSSE'));

답변 2

0

Set 자료형은 중복을 제거 하기 때문에 중복 문자열 길이가 같으면 그것도 중복 제거 해버립니다.

console.log(sol('KKHTTSSSSSEE'));

결과 : K2HTS5E

K2가 T2가 나와야 하는데 2가 중복 되어 사라지는걸 알 수 있습니다.

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

마지막 문자를 처리하지 못하는 것 같습니다. 아래와 같이 입력하면 결과가 제대로 나오지 않습니다.

console.log(sol('KHHHSSEEEEE'));
wyswhsl21님의 프로필 이미지
wyswhsl21

작성한 질문수

질문하기