백준(1439) - 뒤집기 Python

최대 1 분 소요

백준(1439) - 뒤집기

문제풀이 : 그리디 알고리즘, 파이썬

해결방법

1로 만드는 경우와 0으로 만드는 경우를 구해서 둘 중 작은 값을 출력하도록 했다.

  1. 입력받은 수가 만약 000011100011101 이라면 중복되는 값을 제거하고 010101 와 같이 입력받는다.
  2. 입력받은 010101 중 0을 1로 만들경우 카운트, 1을 0으로 만들경우의 카운트를 구해서 둘중 작은 값을 출력한다.
s = input()

def make_1(ss):
    res = 0
    check = [s[0]]
    for i in range(1, len(s)):
        if check[-1] != s[i]:
            check.append(s[i])
        else:
            continue
    return check

res = make_1(s)
count_1 = 0
count_0 = 0
for r in res:
    if r == '0':
        count_0 += 1
    else:
        count_1 += 1
print(min(count_0, count_1))

댓글남기기