안녕하세요

프로그래머스 JS [문자열 나누기] 본문

프로그래머스/Lv.1

프로그래머스 JS [문자열 나누기]

sakuraop 2023. 1. 31. 20:38

문자열 나누기 문제 보기


문제 조건

  • 첫 글자 b를 x라고 할 때
  • 연속되는 x의 횟수 카운트
  • x가 아닌 글자의 횟수 카운트
  • 두 횟수가 같은 지점에서 분리
  • 남은 부분이 없을 때까지 같은 과정 반복하고 종료
  • 횟수 다른 상태로 읽을 긁자 없으면 분리하고 종료

조건 따라 코드 작성

function solution(s) {
  let answer = 0;
  let [xCount, yCount] = [0, 0];

  // 첫 글자 b를 x라고 할 때
  let x = s[0];

  for (let i = 0; i < s.length; i++) {
    // 연속되는 x의 횟수 카운트, x가 아닌 글자의 횟수 카운트
    x === s[i] ? xCount++ : yCount++;

    // 두 횟수가 같은 지점에서 분리
    if (xCount === yCount) {
      answer++;
      xCount = 0;
      yCount = 0;
      x = s[i + 1];
      continue;
    }
 
    // 횟수 다른 상태로 읽을 긁자 없으면 분리하고 종료
    if (i === s.length - 1) answer++;
  }
 
  // 분해한 문자열의 개수 반환
  return answer;
}