728x90
사용언어 : JAVA
출처 : 이것이 코딩테스트다(313 Page)
난이도 : 쉬움
풀이시간 : 20분
URL : https://www.acmicpc.net/problem/1439
1.문제
다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있습니다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 합니다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것입니다.
뒤집는 것은 1을 0으로, 0을 1로 바꾸는 것을 의미합니다.
예를 들어 S = 0001100일 때는 다음과 같습니다.
1. 전체를 뒤집으면 1110011이 됩니다.
2. 4번째 문자부터 5번째 문자까지 뒤집으면 1111111이 되어서 두 번 만에 모두 같은 숫자로 만들 수 있습니다.
하지만, 처음부터 4번째 문자부터 5번째 문자까지 문자를 뒤집으면 한 번에 0000000이 되어서 1번 만에 모두 같은 숫자로 만들 수 있습니다.
문자열 S가 주어졌을 때, 다솜이가 해야하는 행동의 최소 횟수를 출력하세요.
2.입력
- 첫째 줄에 0과 1로만 이루어진 문자열 S가 주어집니다. S의 길이는 100만보다 작습니다.
3.출력
- 첫째 줄에 다솜이가 해야 하는 행동의 최소 횟수를 출력합니다.
#입력
0001100
#출력
1
2.코드구현(JAVA)
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String inputStr = sc.next();
String[] strArry = inputStr.split("");
int cnt0 = 0;
int cnt1 = 0;
if(strArry[0].equals("0"))
cnt0++;
else
cnt1++;
for(int i = 0; i < strArry.length-1; i++) {
if(!strArry[i].equals(strArry[i+1])) {
if(strArry[i].equals("0")) {
cnt0++;
}else
cnt1++;
}
}
System.out.println(Math.min(cnt0, cnt1));
}
}
728x90
'알고리즘 > 코딩테스트' 카테고리의 다른 글
[이것이 코딩테스트다] 떡볶이 떡 만들기, JAVA 풀이 (0) | 2022.07.12 |
---|---|
[이것이 코딩테스트다] 만들수 없는 금액, JAVA 자바 풀이 (0) | 2022.07.04 |
[이것이 코딩테스트다] 탐색, 얼음 얼려먹기 JAVA 자바풀이 (0) | 2022.06.19 |
[이것이 코딩테스트다] 구현, 왕실의 나이트 JAVA 구현 (0) | 2022.06.14 |
[이것이 코딩테스트다] 그리디, 곱하기 혹은 더하기 JAVA 풀이 (0) | 2022.05.21 |