• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

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

23.09.22 15:31 작성 조회수 160

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

rhkdtjd_12님의 프로필

rhkdtjd_12

2023.12.03

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

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

결과 : K2HTS5E

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

0

안녕하세요^^

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

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