📊알고리즘, 문제풀이/📈문제풀이 (PS)

[알고리즘][Python] 백준 1439 뒤집기 문제 풀이

Written by Donghak Park

문제 출처 : www.acmicpc.net/problem/1439

 

1439번: 뒤집기

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

www.acmicpc.net


문제 풀이를 위한 아이디어

 

1. 0과 1 중 연속된 문자열의 갯수가 적을 것을 찾는다.

-> ex) 0011001 과 같은 Input은 "00" , "11", "00", "1" 처럼 구역을 나눌 수 있고 0 구역은 2번 1 구역도 2번이기 때문에 행동의 최소 횟수는 2번입니다.


S = list(input())
A = []
B = []

k = S.pop(0)

while S:
    temp = S.pop(0)

    if k[-1] == temp:
        k += temp
    elif k[-1] != temp and temp == '1':
        A.append(k)
        k = temp
    elif k[-1] != temp and temp == '0':
        B.append(k)
        k = temp

if k[-1] == '0':
    A.append(k)
else:
    B.append(k)

print(min(len(A),len(B)))

author : donghak park
contact : donghark03@naver.com

## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.