프로그래머스 Lv.1 : 문자열 나누기

zeroequaltwo·2022년 12월 6일
0

코딩테스트

목록 보기
68/69

문제

프로그래머스 문제

내 풀이

function solution(s) {  
    let answer = 0;
    
    let i = 0;
    let y = 0;
    let n = 0;
    while(i <= s.length){
        if(s[i] === s[0]) y++;
        else n++;
        
        if(y > 0 && y === n){
            answer++;
            s = s.slice(i+1);
            i = -1;
            y = 0;
            n = 0;
        }
        
        i++;
    }
    
    if(s) answer++;
    return answer;
}

개선점

  • for문으로 푼 풀이
function solution(str) {
    const count = [1, 0];
    let sel = str[0];
    let res = 0;

    for (let i=1; i<str.length; i++) {
      sel === str[i] ? count[0]++ : count[1]++;

      if (count[0] === count[1]) {
        sel = str[++i];
        res++;
        [count[0], count[1]] = [1, 0];
      }
    }

    return sel ? ++res : res;
}
profile
나로 인해 0=2가 성립한다.

0개의 댓글