문자열 나누기 [Java]

sua·2023년 6월 27일
0

문제


나의 풀이

class Solution {
    public int solution(String s) {
        int answer = 1; // 분해한 문자열의 개수
        int x = 0; // 첫 글자의 위치
        int y = 1; // 첫 글자와는 다른 글자의 위치
        int xcount = 1; // 첫 글자의 횟수
        int ycount = 0; // 다른 글자의 횟수 
        
        while(y < s.length()) {
            if(xcount == ycount) { // 횟수가 같은 경우 (문자열 분해)
                x = y; // 다른 글자의 위치를 첫 글자의 위치로 저장
                y += 1; // 다른 글자 위치는 그 다음 +1한 위치
                xcount = 1; // 횟수 초기화
                ycount = 0;
                answer++; // 분해한 횟수 증가 
            } else {
                if(s.charAt(x) == s.charAt(y)) { // 첫 글자와 같은 경우
                    xcount++;
                } else { // 다른 경우 
                    ycount++;
                }
                y++; // 다른 글자의 위치 증가 
            }
        }
        
        return answer;
    }
}

이분탐색을 응용하여 해결할 수 있는 문제다.

결과


profile
가보자고

0개의 댓글

관련 채용 정보