https://www.acmicpc.net/problem/1439
1439번: 뒤집기
다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모
www.acmicpc.net
문제
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int n=0;
for(int i=0;i<s.length()-1;i++) {
if(s.charAt(i) != s.charAt(i+1))
n++;
}
if(n%2==0) n/=2;
else n=(n/2)+1;
System.out.print(n);
}
}
해결방법
메모장에 몇 가지 문자열을 만들어서 규칙을 생각해본다면 한 문자열에서 0=>1, 1=>0 으로 바뀐 개수가 짝수개인 경우 n/2, 바뀐 개수가 홀수개인 경우 (n/2)+1한 값이 행동의 최소 횟수가 된다.
1111 => n=0 => 최소 횟수= 0/2 = 0
10 => n=1 => 최소 횟수= (1/2)+1 = 1
1010 => n=3 => 최소 횟수= (3/2)+1 = 2
110011 => n=2 => 최소 횟수= 2/2 =1
10101010 => n=7 => 최소 횟수= (7/2)+1 = 4
101010101 => n=8 => 최소 횟수= 8/2 = 4
'알고리즘 > 백준' 카테고리의 다른 글
4796번 : 캠핑 (0) | 2022.06.26 |
---|---|
16953번 : A -> B (0) | 2022.06.26 |
10610번 : 30 (1) | 2022.06.22 |
1789번 : 수들의 합 (0) | 2022.06.22 |
10162번 : 전자레인지 (0) | 2022.06.22 |