본문 바로가기

Algorithm

BOJ 1439번 뒤집기

www.acmicpc.net/problem/1439

 

접근 

1. 입력받은 문자열에서 0과 1중 연속된 부분이 적은 쪽이 답이다.

풀이

1. pre 변수에 이전 값 저장
2. pre와 현재 문자가 다를 경우 현재 문자 변수(zero 또는 one) 증가
3. zero, one 중 최솟값 출력

 

public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String s = br.readLine();
        char[] charArray = s.toCharArray();

        int zero = 0, one = 0;
        char pre;
        if(charArray[0] == '1') {
            one++;
            pre = '1';
        } else {
            zero++;
            pre = '0';
        }

        for (int i = 1; i < charArray.length; i++) {
            if(charArray[i] != pre){
                if(charArray[i] == '1') one++;
                else zero++;
                pre = charArray[i];
            }
        }

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

'Algorithm' 카테고리의 다른 글

BOJ 7562 나이트의 이동  (0) 2020.06.23
BOJ 10816번 숫자 카드 2  (0) 2020.06.23
BOJ 9237번 이장님 초대  (0) 2020.06.23
BOJ 1654번 랜선 자르기  (0) 2020.06.23
BOJ 15649번 N과 M (1)  (0) 2020.06.23