728x90
반응형
문제
https://www.acmicpc.net/problem/1439
해설
이 문제는 예시를 먼저 보면 이해가 쉽다.
앞 문자와 다른 문자의 개수(파란색)가 짝수일 때와 홀수일 때로 나눠 볼 수 있다.
짝수일 때는 파란색 // 2 = 빨간색 개수이지만
홀수일 때는 이게 성립하지 않는다.
그러나 짝수, 홀수 둘 다
(파란색 + 1) // 2 = 빨간색이 성립한다.
결국 문자가 몇 번 바뀌는지 수만 세서 위의 식대로 계산하면 끝난다.
코드
-파이썬
#백준 1439(뒤집기)
s = list(input()) #문자열
cnt = 0 #변경 횟수
for i in range(1, len(s)):
if s[i] != s[i - 1]:
cnt += 1
print((cnt + 1) // 2)
-자바
//백준 1439(뒤집기)
import java.util.*;
import java.io.*;
public class Boj_1439 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char[] s = br.readLine().toCharArray(); //문자열
int cnt = 0;
for(int i = 1; i < s.length; i++) {
if(s[i] != s[i - 1]) {
cnt ++;
}
}
System.out.println((cnt + 1) / 2);
}
}
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[파이썬, 자바] BOJ_12782(비트 우정지수) (0) | 2021.02.01 |
---|---|
[파이썬, 자바] BOJ_14916(거스름돈) (0) | 2021.01.29 |
[파이썬, 자바] BOJ_3052(나머지) (0) | 2021.01.27 |
[파이썬, 자바] BOJ_1783(병든 나이트) (0) | 2021.01.27 |
[파이썬, 자바] BOJ_16435(스네이크버드) (0) | 2021.01.26 |