코딩테스트 연습
프로그래머스 코딩테스트 연습 - 문자열 나누기 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;
}
문제를 해결하는 데 있어서 헷갈렸던 부분은 첫 문자와 같은 문자 수와 다른 문자 수가 같아진 순간이었다.
이때, 문자열을 나누고 남은 문자열 중에 첫 문자를 이용하여 다시 같은 문자와 다른 문자를 세 나가야 했다.
이렇게 했을 때, 마지막 남은 문자의 처리가 좀 헷갈렸다.
마지막 순간에 같은 문자 수와 다른 문자 수가 일치하여 딱 나누어지면 로직이 간단했는데, 나눠지지 않고 남은 문자열이 있는 경우의 처리가 문제였다.
결국 첫 번째 문자를 기준으로 로직을 나눈 것이 유효했다.