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

seunghwan·2022년 12월 7일
2

알고리즘

목록 보기
5/5
post-thumbnail

문제 설명


코드

const solution = (str) => {
    let answer = 1;
    let x;
    let xCount = 0;
    let otherCount = 0;

    for (let i = 0; i < str.length; i++) {
        // x 초기설정
        if (i === 0) {
           x = str[i];
           xCount++;
           continue; 
        }

        // Count 같을 때
        if (xCount === otherCount) {
            answer++;
            temp = str.substring(i);
            x = temp[0];
            xCount = 1;
            otherCount = 0;
            continue;
        }

        // Count 추가
        if (x === str[i]) {
            xCount++;
        }
        else if (x !== str[i]) {
            otherCount++;
        }
    }

    return answer;
}

풀이

처음에 분리시킬 문자열을 따로 빼줘야 되나? 했다가,
굳이 그럴 필요 없이 원본 문자열을 순회하면서 체크하면 될 거 같았다! 🙄

  • 문자열의 개수는 최소 1이기 때문에 answer 의 초기값을 1로 설정
  • 처음 x 값을 설정해준다
  • x의 Count다른 문자의 Count 를 세준다
  • Count가 같으면 answer + 1
  • 원본 문자열을 substring 으로 잘라 temp 에 담는다
  • temp의 0번째 값으로 x 값을 재설정
  • Count 수도 초기화 해주고 반복을 진행
  • 순회를 마친 후 answerreturn

결과

정답ㅎ-ㅎ


profile
소소한 개발일지💻

2개의 댓글

comment-user-thumbnail
2022년 12월 8일

와 잘하셨네요!!(≧︶≦))( ̄▽ ̄ )ゞ

1개의 답글