문제 링크
https://www.acmicpc.net/problem/1439
접근 방법
0이 연속되는 횟수와, 1이 연속되는 횟수를 구해서 적은 값을 선택한다
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main_1439_뒤집기 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String num = br.readLine();
//0과 1이 연속되지 않는 영역 개수 구함
int prev = num.charAt(0) - '0'; //처음 값
//처음 영역 설정
int zero = prev == 0 ? 1 : 0;
int one = prev == 1 ? 1 : 0;
for (int i = 1; i < num.length(); i++) {
int cur = num.charAt(i) - '0';
if (prev != cur) {
prev = cur;
//현재 들어온 값이 0인지 1인지에 따라 영역 선택
zero += cur == 0 ? 1 : 0;
one += cur == 1 ? 1 : 0;
}
}
System.out.println(Math.min(zero, one));
}
}'Problem Solving > BOJ' 카테고리의 다른 글
| [백준 Java] 1316 그룹 단어 체커 (0) | 2023.05.25 |
|---|---|
| [백준 Java] 1018 체스판 다시 칠하기 (0) | 2023.05.09 |
| [백준 Java] 7562 나이트의 이동 (0) | 2023.04.09 |
| [백준 Java] 4673 셀프 넘버 (0) | 2023.03.24 |
| [백준 Java] 16953 A → B (0) | 2023.03.23 |