개발 블로그
article thumbnail
Published 2023. 10. 25. 15:43
1439번. 뒤집기 Algorithm/백준 알고리즘

 

아이디어

이 문제는 결국 0 으로 통일할 것인가? 1로 통일할 것인가? 를 결정하는 문제다.

 

0 으로 통일하는 과정은 연속된 1로 이루어진 구역들을 각각 뒤집는 것이 최소 횟수이고

1 로 통일하는 과정은 연속된 0으로 이루어진 구역들을 각각 뒤집는 것이 최소 횟수이므로

 

입력으로 들어오는 문자열에서 연속된 0 으로 이루어진 구역의 갯수와 연속된 1로 이루어진 구역의 갯수를 세서 더 작은 값을 출력하면 된다.

 

 

풀이코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String input = br.readLine();
        int len = input.length();

        int district0 = 0;
        int district1 = 0;
        for (int i = 1; i < len; i++) {
            if (input.charAt(i) != input.charAt(i - 1)) {
                if (input.charAt(i - 1) == '0') {
                    district0++;
                } else {
                    district1++;
                }
            }
        }

        if (input.charAt(len - 1) == '0') {
            district0++;
        } else {
            district1++;
        }

        System.out.println(Math.min(district0, district1));
    }
}

'Algorithm > 백준 알고리즘' 카테고리의 다른 글

2635번. 수 이어가기  (0) 2023.10.26
16208번. 귀찮음  (0) 2023.10.26
16956번. 늑대와 양  (0) 2023.10.25
2670번. 연속부분최대곱  (0) 2023.10.25
10026번. 적록색약  (1) 2023.10.22
profile

개발 블로그

@하얀.손

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!