새소식

Algorithm/BOJ

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

  • -
728x90

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

 

1439번: 뒤집기

다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모

www.acmicpc.net

1439, 뒤집기

이번 문제는 StringTokenizer 을 사용하면 너무나도 쉽게 풀 수 있다.

 

Process

main

: 예제 입력 4번을 예시로 들어보자.

11001100110011000001

이 입력을 1과 0 으로 쪼개보면

11 00 11 00 11 00 11 00000 1

이렇게 표기할 수 있다.

1 은 {11, 11, 11, 11, 1} , 0은 {00, 00, 00. 00000} 으로 나눌 수 있다.

행동의 최소 횟수를 출력해야 하기 때문에 0 을 1로 뒤집는 횟수를 구하면 되기 때문에

즉, 답은 4가 된다.

 

그렇기 때문에 입력받은 문자열 S 를 StringTokenizer 로 0 과 1로 나눈 후, count 하면 쉽게 해결할 수 있다.

static String S;

static void input() 
{
    S = scan.nextLine();
}

static void pro() 
{
    int zero = 0, one = 0;

    StringTokenizer oneCount = new StringTokenizer(S, "0");

    one = oneCount.countTokens();

    StringTokenizer zeroCount = new StringTokenizer(S, "1");

    zero = zeroCount.countTokens();

    System.out.println(Math.min(one,zero));
}

public static void main(String[] args) 
{
    input();
    pro();
}

 

 

 

급하게 조사하고 정리하다보니 부족하거나 틀린 내용이 있을 수도 있는데 댓글로 달아주시면 감사하겠습니다!

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.