https://www.acmicpc.net/problem/1439
1. 아이디어
뒤집기의 최소 횟수는 0 묶음만 1로 뒤집거나 1묶음만 0으로 뒤집으면 된다.
굳이 0으로 뒤집었다 1로 뒤집었다를 반복하지 않아도 돼서 간단하게 해결할 수 있다.
2. 문제풀이
주어진 입력을 0으로 한번, 1로 한번 파싱해서 뒤집었을 때 최솟값을 출력하면 된다.
3. 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
StringTokenizer st0 = new StringTokenizer(input, "0");
StringTokenizer st1 = new StringTokenizer(input, "1");
System.out.println(Math.min(st0.countTokens(), st1.countTokens()));
}
}
4. 후기
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 15829번 - Hashing [Java] (0) | 2024.12.02 |
---|---|
[백준] 2559번 - 수열 [Java] (0) | 2024.12.02 |
[백준] 2217번 - 로프 [Java] (0) | 2024.12.02 |
[백준] 1541번 - 잃어버린 괄호 [Java] (0) | 2024.12.02 |
[백준] 10430번 - 나머지 [Java] (1) | 2024.12.02 |