https://school.programmers.co.kr/learn/courses/30/lessons/140108
문자열을 제시된 규칙에 따라 분해하는 문제다.
아래를 핵심으로 생각하고 풀었다.
'#'
으로 초기화x == s.charAt(i)
면 x++, 아니면 nx++answer++
이후 x에 대한 카운트와 nx에 대한 카운트가 다른 값이라면,
위 분해 기준으로 처리하지 못한 글자가 남아있다는 뜻이 된다.
그리고 그것은 하나의 문자열 덩어리로 취급되므로, answer++
처리해주면 끝난다.
class Solution {
public int solution(String s) {
int answer = 0;
char x = '#';
int xCount = 0;
int nxCount = 0;
for (int i=0; i<s.length(); i++) {
if (x == '#') {
x = s.charAt(i);
xCount++;
continue;
}
if (s.charAt(i) == x) {
xCount++;
} else {
nxCount++;
}
if (xCount == nxCount) {
x = '#';
xCount = 0;
nxCount = 0;
answer++;
}
}
if (xCount != nxCount) {
answer++;
}
return answer;
}
}