💡/코딩 테스트
[프로그래머스] 문자열 나누기
defyuil
2025. 2. 24. 20:56
이 문제를 해결하는 방법은 문자열을 왼쪽에서 오른쪽으로 순차적으로 읽으며 주어진 규칙을 적용하는 것!!
class Solution {
public int solution(String s) {
int answer = 0;
int xCount = 0, otherCount = 0;
char x = s.charAt(0);
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == x) {
xCount++;
} else {
otherCount++;
}
if (xCount == otherCount) {
answer++;
// 새로운 x 설정
if (i + 1 < s.length()) {
x = s.charAt(i + 1);
}
xCount = 0;
otherCount = 0;
}
}
// 마지막 처리
if (xCount != 0 || otherCount != 0) {
answer++;
}
return answer;
}
}
더보기
- 첫 글자(x) 선택
문자열을 순회하며 첫 글자를 x로 설정한다
- x와 다른 글자 개수 세기
- xCount: x의 등장 횟수
- otherCount: x가 아닌 다른 글자의 등장 횟수
- 문자를 하나씩 읽으며 xCount와 otherCount를 업데이트한다
- 두 횟수가 같아지면 분리
- xCount == otherCount가 되면 지금까지 읽은 문자열을 하나의 그룹으로 분리하고, answer 값을 증가시킴
- 새로운 부분 문자열을 탐색하기 위해 초기화한다
- 남은 문자열 처리
- 만약 문자열 끝까지 갔는데 아직 xCount != otherCount라면 마지막으로 하나의 그룹을 추가한다