본문 바로가기
코딩테스트 준비/백준

[백준] 1439번 - 뒤집기 [Java]

by mwzz6 2024. 12. 2.

https://www.acmicpc.net/problem/1439

 

[백준] 1439번 - 뒤집기 [Java]
[백준] 1439번 - 뒤집기 [Java]


1.  아이디어

 

뒤집기의 최소 횟수는 0 묶음만 1로 뒤집거나 1묶음만 0으로 뒤집으면 된다.

굳이 0으로 뒤집었다 1로 뒤집었다를 반복하지 않아도 돼서 간단하게 해결할 수 있다.


2. 문제풀이

 

주어진 입력을 0으로 한번, 1로 한번 파싱해서 뒤집었을 때 최솟값을 출력하면 된다.


3. 코드

 

import java.io.*;
import java.util.*;

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

        StringTokenizer st0 = new StringTokenizer(input, "0");
        StringTokenizer st1 = new StringTokenizer(input, "1");

        System.out.println(Math.min(st0.countTokens(), st1.countTokens()));
    }
}

4. 후기