728x90
코드 힌트
- 문자 카운트하기:
- 주어진 문자열에서 특정 문자(target)와 다른 문자의 개수를 추적해야합니다.
- 저는 이를 위해 배열을 사용하였지만 변수로 +1 -1로 하셔도 무관합니다. 또는 2개의 변수를 사용하셔도 됩니다.
- 문자 개수 비교:
- 문자열을 순회하면서 target 문자와 일치하는 경우와 그렇지 않을 경우 카운트를 관리합니다.
- 카운트가 같아질 때마다 결과를 1 증가시킵니다. 이는 균형 잡힌 문자열이 하나 완성되었음을 의미합니다.
- 마지막 문자열 처리:
- 반복이 끝난 후에도 카운트가 같지 않다면, 남아있는 문자열이 있으므로 결과에 1을 더해줍니다.
정답은 더보기 클릭
더보기
class Solution {
public int solution(String s) {
int result = 0; // 결과를 저장할 변수 초기화
// 문자 개수를 저장할 배열. [0]은 target의 개수, [1]은 다른 문자의 개수
int[] countArr = new int[2];
char target = s.charAt(0); // 첫 번째 문자를 target으로 설정
for (int i = 0; i < s.length(); i++) {
if (target == s.charAt(i)) { // target 문자와 일치하는 경우
countArr[0]++; // target 문자의 개수 증가
} else { // target 문자와 일치하지 않는 경우
countArr[1]++; // 다른 문자의 개수 증가
}
// target 문자와 다른 문자의 개수가 같아졌을 때
if (countArr[0] == countArr[1]) {
result++; // 균형 잡힌 문자열이 완성되었으므로 결과를 1 증가
countArr = new int[2]; // 카운트 배열 초기화
target = s.charAt((i+1) % s.length()); // 다음 target 문자 설정
}
}
// 반복이 끝난 후에도 균형이 맞지 않는 경우 마지막 문자열 처리
if (countArr[0] != countArr[1]) {
return result + 1; // 남아있는 문자열을 포함하여 결과 반환
}
return result; // 최종 결과 반환
}
}
728x90
'프로그래머스(Java) > Level 1' 카테고리의 다른 글
[프로그래머스] [PCCP 기출문제] 1번 / 붕대 감기 (0) | 2024.08.21 |
---|---|
[프로그래머스] [1차] 다트 게임 (1) | 2024.08.20 |
[프로그래머스] 신고 결과 받기 (0) | 2024.08.12 |
[프로그래머스] 둘만의 암호 (0) | 2024.08.06 |
[프로그래머스] [PCCE 기출문제] 9번 / 이웃한 칸 (0) | 2024.08.06 |