728x90
첫 문자를 읽고 그 다음 문자를 읽어가면서
첫 문자와 같은 문자와 같지 않은 문자의 수가 같아질때마나다 문자열을 분할하며 읽고 분할된 문자열의 개수를 반환
public int solution(String s) {
int answer = 0;
char firstLetter = '0';
int count=0;
for(char c : s.toCharArray()) {
if(count==0) {
firstLetter = c;
answer++;
}
if(firstLetter==c) {
count++;
}else {
count--;
}
}
return answer;
}
문제를 이해하는데 시간이 좀 걸렸다;
첫 문자열을 저장하고 이후 반복부터 첫 문자열과 같으면 count를 증가 첫문자열과 다르면 count를 감소하여
count가 0이 되는 인덱스가 첫 문자와 같은 문자의 수와 같지 않은 문자의 수가 같게 되는 인덱스 이므로
그 인덱스에서 문자열을 분할한다는 의미로 answer를 증가시킨다.
문자열을 n번 분할하면 분할된 문자열은 n+1 개가 된다.
여기서는 처음 firstLetter를 지정하면서 count가 answer를 증가시키기 때문에 나중에 증가시킬 필요 없다.
'Java > Coding Test' 카테고리의 다른 글
다트 게임 문제 풀이 (0) | 2023.10.04 |
---|---|
실패율 문제 풀이 (0) | 2023.10.01 |
대충 만든 자판 문제 풀이 (0) | 2023.10.01 |
모의고사 문제 풀이 (0) | 2023.09.30 |
개인정보 수집 유효 기간 문제 풀이 (0) | 2023.09.28 |