https://school.programmers.co.kr/learn/courses/30/lessons/140108
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
✓ 풀이과정
1. 하나의 문자를 저장하고 이 문자의 개수와 이 문자와 다른 문자의 개수가 일치하면 카운트 하나 추가하고 다음 새로운 문자 저장
2. 문자열의 길이만큼 1번을 반복하고 마지막에 하나의 카운트로 계산되지 않는 문자열이 남으면 카운트 하나 추가
function solution(s) {
let answer = 0;
let str = "";
let thisStrCnt = 0;
let diffStrCnt = 0;
for (let i = 0; i < s.length; i++) {
let thisStr = s[i];
if (thisStrCnt === 0) {
str = thisStr;
thisStrCnt++;
} else if (str === thisStr) {
thisStrCnt++;
} else if (str !== thisStr) {
diffStrCnt++;
}
if (thisStrCnt === diffStrCnt || i === s.length - 1) {
answer++;
str = "";
thisStrCnt = 0;
diffStrCnt = 0;
}
}
return answer;
}
위 코드는 지금 문자와 일치하는 문자의 개수/지금 문자와 다른 문자의 개수를 별개의 변수로 각각 저장하고 있는데
하나의 변수를 +/- 하는 방법으로 수정했습니다
✓ 최종코드
function solution(s) {
let answer = 0;
let str = "";
let ctn = 0;
for (let i = 0; i < s.length; i++) {
let thisStr = s[i];
if (ctn === 0) {
str = thisStr;
ctn++;
} else {
ctn += str === thisStr ? 1 : -1;
}
if (ctn === 0 || i === s.length - 1) {
answer++;
str = "";
ctn = 0;
}
}
return answer;
}'프로그래머스 > Lv1' 카테고리의 다른 글
| [프로그래머스/Javascript] Lv.1 소수 찾기 (0) | 2026.01.26 |
|---|---|
| [프로그래머스/Javascript] Lv.1 대충 만든 자판 (0) | 2026.01.21 |
| [프로그래머스/Javascript] Lv.1 둘만의 암호 (0) | 2026.01.20 |
| [프로그래머스/Javascript] Lv.1 2016년 (0) | 2026.01.19 |
| [프로그래머스/Javascript] Lv.1 공원 산책 (0) | 2026.01.19 |