본문 바로가기
백준 Algorithm

[프로그래머스] 문자열 나누기 Java 풀이

by Echung 2023. 3. 15.

Problem

 문자열 나누기

 

Solution

 문자열을 제일 먼저 첫 글자를 읽고 첫 글자와 다른 글자의 갯수가 같으면 문자열을 분리하고 다르면 갯수가 같아질 때까지 카운트하여 최종으로 나눠진 문자열 갯수를 구하는 문제이다.

1. 첫 글자가 나오는 횟수를 count, 다른 글자가 나오는 횟수를 diff로 선언하여 카운팅한다.

2. for문을 사용하여 s의 길이만큼 반복해주면 된다.

3. 첫 글자를 first에 넣고, 뒤에 글자를 temp에 넣은 후 같으면 count++ 다르면 diff++을 해주면서 count와 diff가 같아질 때까지 비교한다.

4. count와 diff가 같으면 first는 temp로 바뀌고 다시 answer++을 해준다.

5. for문을 다 반복한 후 answer을 리턴해주면 끝 ~

 

class Solution {
    public int solution(String s) {
        int answer = 1;
        int count = 1;
        int diff = 0;
        int first = s.charAt(0) - 'a';
        
        for(int i = 1; i < s.length(); i++) {
            int temp = s.charAt(i) - 'a';
            
            if(count == diff) {
                answer++;
                first = temp;
                count = 1;
                diff = 0;
            } else {
                if(first == temp) {
                    count++;
                } else {
                    diff++;
                }
            }
        }
        
        return answer;
    }
}

사진1. 프로그래머스 실행 시간 및 채점 결과

 

마치며

 Lv1 문제라서 그런지 어려운 문제는 아니였다. 더 깔끔한 코드나 더 좋은 코드는 언제든 피드백 주시면 감사하겠습니다 :) 

반응형