코딩테스트 연습

프로그래머스 코딩테스트 연습 - 문자열 나누기 JavaScript

citron031 2023. 1. 1. 14:05
function solution(s) {
    let answer = 0;
    let first = "";
    let same = 0;
    let notSame = 0;
    for(let i = 0; i < s.length; i++) {
        if(first.length === 0) {
            first = s[i];
            same = 1;
            continue;
        }
        if(first === s[i]) {
            same++;
        }else {
            notSame++;
        }
        if(same === notSame) {
            first = "";
            same = 0;
            notSame = 0;
            answer++;
        }
    }
    if(first.length > 0) {
        answer++;
    }
    return answer;
}

문제를 해결하는 데 있어서 헷갈렸던 부분은 첫 문자와 같은 문자 수와 다른 문자 수가 같아진 순간이었다.

이때, 문자열을 나누고 남은 문자열 중에 첫 문자를 이용하여 다시 같은 문자와 다른 문자를 세 나가야 했다.

이렇게 했을 때, 마지막 남은 문자의 처리가 좀 헷갈렸다.

마지막 순간에 같은 문자 수와 다른 문자 수가 일치하여 딱 나누어지면 로직이 간단했는데, 나눠지지 않고 남은 문자열이 있는 경우의 처리가 문제였다.

결국 첫 번째 문자를 기준으로 로직을 나눈 것이 유효했다.