1. 문제 풀이 아이디어
- 반복문을 사용해 첫 문자를 기준으로 같은 문자의 개수와 다른 문자의 개수를 계산하며 문자를 나누는 작업을 반복하면 문제를 해결할 수 있다.
2. 나의 정답 코드
class Solution {
public int solution(String s) {
int answer = 0;
char prev = ' ';
int pc = 0;
int dc = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (i == s.length() - 1) {
answer++;
} else if (prev == ' ') {
prev = c;
pc++;
} else if (prev == c) {
pc++;
} else {
dc++;
if (pc == dc) {
answer++;
pc = 0;
dc = 0;
prev = ' ';
}
}
}
return answer;
}
}
3. 정리
- 초기값으로
prev
를 공백 문자로 설정하고, 같은 문자의 개수를 저장하는pc
와 다른 문자의 개수를 저장하는dc
를 초기화한다.
for
문을 사용해 문자열의 각 문자를 순차적으로 처리한다:- 현재 문자를
c
로 가져온다. - 마지막 문자일 경우 결과값
answer
를 증가시킨다. prev
가 공백 문자라면c
를prev
에 저장하고pc
를 증가시킨다.- 현재 문자
c
가prev
와 같다면pc
를 증가시킨다. c
가prev
와 다를 경우dc
를 증가시키고,pc
와dc
가 같으면 결과값answer
를 증가시킨다. 이후pc
,dc
,prev
를 초기화한다.
- 반복문을 통해 모든 문자를 처리한 뒤 최종적으로
answer
를 반환한다.
Share article