문자열 s가 매개변수로 주어질 때, 문자열들을 분해하고, 분해한 문자열의 개수를 return하는 함수 solution을 작성하는 문제이다.
문제에 제시된 규칙에 따라 코드를 작성하면 되는 문제이다. 분리한 문자열을 빼고 남은 부분에 대해 과정을 반복하는 문제는 while문을 사용하여, 남은 부분이 없다면 종료하도록 하였다.
class Solution {
public int solution(String s) {
int answer = 0;
while (true) {
s = sub(s);
answer++;
if (s.isEmpty()) { // 남은 부분이 없다면 종료
break;
}
}
return answer;
}
private String sub(String s) {
String str = "";
char x = s.charAt(0);
int y = 1; // x가 나온 횟수
int n = 0; // x가 아닌 다른 글자들이 나온 횟수
for (int i = 1; i < s.length()-1; i++) {
if (s.charAt(i) == x) {
y++;
} else {
n++;
}
if (y == n) { // 두 횟수가 같아지면, 멈추고 문자열을 분리
str = s.substring(i + 1);
break;
}
}
// 더 이상 읽을 글자가 없다면, 지금까지 읽은 문자열을 분리
return str;
}
}