1주차 : 그리디 문제1

MINJU·2022년 1월 11일
post-thumbnail

✔ BOJ_1439



풀이 과정

내 제출 현황


첫 번째는 왜 틀렸는지 모르고 두 번째는 class Main으로 안바꿔서 틀렸다?

1과 0이 연속되는 개수를 one과 zero에 저장한다. 예를들어서 110011이면 one = 2, zero = 1.

prev와 now는 연속된 숫자인지를 판별하기 위한 코드.

input을 끝까지 돌면서 one과 zero를 계산하고 그 중 최소인 것을 답으로 반환한다.

import java.util.Scanner;

public class BOJ_1439 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        int zero = 0;
        int one = 0;
        char prev = input.charAt(0);
        if(prev == '0') zero++;
        else if(prev == '1') one++;
        for(int i=1;i<input.length();i++){
            char now = input.charAt(i);
            if(prev != now){
                if(now == '0') zero ++;
                else if(now == '1') one++;
                prev = now;
            }
        }
        System.out.println(Math.min(zero, one));
    }
}

0개의 댓글