문제 출처 : https://www.acmicpc.net/problem/1439


문제에서 제시된 0과1로 된 수열을 연속적으로 이루어진 0과 1을 뒤집어서 주어진 수열을 0으로만 혹은 1으로만 이루어지도록 하는데 최소한의 횟수를 구하는 문제입니다. 즉, 주어진 수열에서 0의 덩어리 수와 1의 덩어리 수 중 적은 덩어리 수를 나타내는 것이 문제를 해결하는 방법입니다.
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String[] arr = sc.nextLine().split("");
int one = 0, zero = 0;
String num = arr[0];
if (num.equals("0") ) {
zero++;
}
else if(num.equals("1")) {
one++;
}
for(int i = 1; i < arr.length; i++) {
String next = arr[i];
if(next.equals(num)) {
continue;
}
else {
if(arr[i].equals("0")) {
zero++;
}
else if(arr[i].equals("1")) {
one++;
}
num = arr[i];
}
}
if (one >= zero) {
System.out.println(zero);
}
else {
System.out.println(one);
}
}
}