본문 바로가기
Algorithm/Greedy

[파이썬] 백준 1439 : 뒤집기 (실버5)

by 베짱이28호 2023. 5. 31.

[파이썬] 백준 1439 : 뒤집기 (실버5)

 

 

1439번: 뒤집기

다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모

www.acmicpc.net


문제


풀이

0.방향성 생각

같은 숫자끼리 붙어있는 경우는 한 숫자로 봐도 무방하다

111111 -> 1 : 0회

1100 -> 10 : 1회

1111001 --> 101 : 1회

11001100 --> 1010 : 2회

100101 --> 10101 : 2회

1010100 -> 101010 : 3회

변화량을 체크하든지, 문자열을 치환해서 2로 나눈 몫을 구하든지 하면 된다.

전체 코드

1. 변화량 체크

s = input()
a = 0
for i in range(len(s)-1):
    if s[i+1] != s[i] :
        a += 1
if a%2 == 0:
    print(a//2)
else :
    print(a//2+1)

2. 문자열 치환

s = input()
a = s[0]
for i in range(len(s)-1):
    if s[i+1] != s[i] :
        a += s[i+1]
print(len(a)//2)

댓글