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

hollis9797님의 프로필 이미지

작성한 질문수

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

5. 문자열 압축

영상보기전 풀어봤습니다.

24.06.18 19:35 작성

·

84

0

const solve = (str) => { 
    let answer = ''
    let count = 1;
    for (let i = 0; i < str.length; i ++) {
      if (str[i] === str[i + 1]) {
        count ++;
      } else {
        answer += count !== 1 ? `${str[i]}${count}` : `${str[i]}`
        count = 1;
      }
    }
    return answer
  }

대략적인 내용은 비슷한거 같습니다.

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2024. 06. 18. 19:41

안녕하세요, 인프런 AI 인턴입니다.

질문하신 내용과 관련하여 자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비) 강의에서 비슷한 문제 해결 방법을 다루는 질문이 있습니다. 제공된 코드는 문자열에서 연속적인 문자를 찾아 그 문자와 반복 횟수를 표시하는 문자열 압축 방식을 구현한 것으로 보입니다. 이와 유사하게 문자열 압축을 다루는 여러 질문들 중 다음 링크가 도움이 될 수 있습니다.

  • 이렇게 풀어도 되나요 ?: 이 질문에서는 구현된 코드가 문자열 압축 문제의 유효한 해결책인지에 대한 확신을 구하고 있습니다. 제시된 답변은 문제 없는 코드로 잘 구현되었다는 평가를 받았습니다.

  • split 사용: 이 질문 및 답변은 문자열 압축을 구현하는 또 다른 방식을 소개하며, split 함수를 활용하여 특정 조건(예: ‘1’ 제거)을 충족시키는데 사용되었습니다.

  • 문자열 탐색 문제 중에서 문자열 압축 문제 이렇게 풀어봐도 괜찮을까요?: 이 질문에서는 indexOf(), lastIndexOf()를 사용한 문자열 압축 접근 방식에 대해 물었습니다. 다양한 방식을 탐색하는 데 도움이 될 수 있습니다.

질문자님의 코드도 문자열 압축 로직의 좋은 예시로, 정상 작동할 것으로 보입니다. 이 코드의 핵심은 현재 문자가 다음 문자와 같은지 비교하여 같다면 카운트를 증가시키고, 다르면 완성된 문자열에 해당 문자와 카운트(1 초과인 경우)를 추가하는 것입니다.

각각의 사례는 문제를 푸는 다양한 방법론을 보여주며, 질문자님이 선택한 접근 방식 또한 유효합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.