문자열 뒤집기 (Java)

박지훈·2021년 2월 17일
0
post-custom-banner

문제

링크



풀이

문자열 S의 연속된 0과 1의 덩어리 개수를 파악하면 쉽다고 생각했다.

  • 연속된 0 덩어리 개수와 1 덩어리 개수 중 최솟값을 구한다.



코드

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

// BOJ 1439
public class Main {

    static int answer = 0;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String S = br.readLine();
        char[] cArr = S.toCharArray();

        int zeroCnt = 0;    // 0 덩어리 개수
        int oneCnt = 0;     // 1 덩어리 개수

        for (int i = 0; i < cArr.length - 1; i++) {
            if (cArr[i] == '0') {
                if (cArr[i] != cArr[i + 1]) {
                    zeroCnt++;
                }
            } else if (cArr[i] == '1') {
                if (cArr[i] != cArr[i + 1]) {
                    oneCnt++;
                }
            }
        }

        if (cArr[cArr.length - 1] == '0') {
            zeroCnt++;
        } else if(cArr[cArr.length - 1] == '1') {
            oneCnt++;
        }

//        System.out.println(zeroCnt + " " + oneCnt);
        answer = Math.min(zeroCnt, oneCnt);
        System.out.println(answer);

    }
}
profile
Computer Science!!
post-custom-banner

0개의 댓글