알고리즘

1439-백준-뒤집기

easysheep 2023. 2. 13. 00:13

1. 문제 출처

https://www.acmicpc.net/problem/1439

 

1439번: 뒤집기

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

www.acmicpc.net

2. 풀이

연속되는 0,1을 0001110011->0101다음과 같이 한자리수로 바꾸어 준다음 각각의  0과 1의 개수중 가장 작은 수를 print하면 정답이 된다.

# 데이터 받기
data = input()
def solution(S):
    # 키값이 "1","0"인 dict 만들기
    num_dict = {"1":0, "0":0}
    # 처음 값에 따라 업데이트
    num_dict.update({S[0]:1})
    # 처음값을 temp에 저장
    temp = S[0]
    for num in S:
    # 만약 값이 변한다면
        if temp!=num:
        # 1로 변했으면 1, 0으로 변했으면 0 키값을 가지는 value값을 1올려준다
            num_dict.update({num:num_dict[num]+1})
            temp = num
    # 결과값 출력    
    print(min(num_dict["1"],num_dict["0"]))

    
solution(data)