s
문자열 | "banana" | 1 ≤ s의 길이 ≤ 10,000
문자열들로 분해하고, 분해한 문자열의 개수를 return
( 첫 글자 x와 그 후에 나오는 글자들을 비교하여 x의 개수와 x가 아닌 개수가 같으면 문자열을 분해하고 다시 해당 과정을 반복 )
첫번째 문자를 저장하고, 이후에 나오는 문자가 같은 글자인지 체크 후 각각의 cnt를 증가
두 cnt가 같다면 이전에 쓴 변수들 초기화 및 ans 증가
class Solution {
public int solution(String s) {
int split_cnt = 1, std_cnt = 1, other_cnt = 0;
char std = s.charAt(0);
for(int i=1; i<s.length(); i++){
char cur = s.charAt(i);
if(cur == std)
std_cnt++;
else
other_cnt++;
if(std_cnt == other_cnt){
if(s.length() <= ++i)
break;
std = s.charAt(i);
split_cnt++;
std_cnt = 1;
other_cnt = 0;
}
}
return split_cnt;
}
}
Tip : 배열의 인덱스를 증가할 때 크기보다 더 커질 경우가 있는지를 봐야한다.