해당 문제는 반복문(for) 조건(if)에 따라 답을 구하는 문제입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/140108
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로 분해되어야 한다.
반응형
'Algorithm' 카테고리의 다른 글
[프로그래머스/JavaScript] Lv.2 디펜스 게임 (2) | 2022.12.11 |
---|---|
[프로그래머스/JavaScript] Lv.1 기사단원의 무기 (0) | 2022.12.09 |
[프로그래머스/JavaScript] Lv.2 점 찍기 (0) | 2022.12.07 |
[프로그래머스/JavaScript] Lv.2 이진 변환 반복하기 (0) | 2022.12.06 |
[프로그래머스/JavaScript] Lv.3 억억단을 외우자 (0) | 2022.12.05 |