문제 풀이/백준

[백준] 1439번. 뒤집기 (JAVA)

27200 2024. 3. 19. 14:23

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


문제


풀이

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 s = br.readLine();
        StringTokenizer st1 = new StringTokenizer(s,"0");
        StringTokenizer st0 = new StringTokenizer(s,"1");

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

    }
}

 

StringTokenizer의 기능을 이용하여 구성한다

StringTokenizer st1 = new StringTokenizer(s,"0");

 

이렇게 작성하면 StringTokenizer이 0을 기준으로 구분하여 토큰을 생성해 준다.

예를 들면 1100101 이면 11 , 1, 1이 토큰이 되는 것이다.

 

이후 0과 1중 토큰의 개수가 적은 만큼 뒤집으면 되기 때문에 Math라이브러리의 min을 통해 출력한다.