Algorithm

[프로그래머스/JavaScript] Lv.1 문자열 나누기

cob 2022. 12. 8. 08:43
해당 문제는 반복문(for) 조건(if)에 따라 답을 구하는 문제입니다.

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/140108

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 


1. 문제 설명

문제 설명

 

 


2. 입출력 예

입출력 예

 

 


3. 문제 풀이

function solution(s) {
    // 1) a:동일할 경우 증가, b:다른 경우 증가
    let answer=a=b=0;

    // 2) 비교 문자
    let word='';

    // 3) true 경우만 비교 문자를 담는다.
    let isTrue = true;
    
    // 4) 문자열 하나씩 꺼내서 비교
    for(let i=0; i<s.length; i++){
    
        // 5) 비교 문자 담기
        if(isTrue) word = s[i];
        
        // 6) 현재 문자가 비교문자와 동일하면 a 증가 후 false
        if(word === s[i]) { a++; isTrue = false; }
        
        // 7) 다르면 b증가
        else b++;
      
        // 8) a 와 b가 동일하면 answer증가, a와b 초기화, 다시 문자를 담기 위해 true
        if(a === b) {
            answer++;
            a=b=0;
            isTrue = true;
        }
    }
    // 9) 증가 값이 없으면 딱 떨어지는 경우로 answer 리턴, 아닌 경우 남는 문자가 있으므로 1증가
    return a === 0 && b === 0 ? answer : answer+1;
}
  • 주의할 점은 입력 값  ' baaa '인 경우 ba  aa로 분해되어야 한다. 
반응형