[이코테] 그리디 문제 풀이 - 문자열 뒤집기

Gorae·2021년 6월 21일
0

알고리즘

목록 보기
18/19
post-thumbnail

문제 요약

0과 1로만 이뤄진 문자열이 주어질 때, 연속되는 같은 숫자는 한번에 뒤집을 수 있다. 모두 0 또는 모두 1로 만드는 최소 횟수를 구하라.

나의 풀이

s = input()
zero = []
one = []
z = 0
o = 0

for i in s:
    if i ==1:
        o += 1
        if z != 0:
            zero.append(z)
    elif i ==0:
        z += 1
        if o != 0:
            one.append(o)
print(min(len(zero), len(one)))

모범 답안

data = input()
count0 = 0
count1 = 0

if data[0] ==1:
    count0 += 1
else:
    count1 += 1

for i in range(len(data)-1):
    if data[i] != data[i+1]:
        if data[i+1] ==1:
            count0 += 1
        else:
            count1 += 1
print(min(count0, count1))
profile
좋은 개발자, 좋은 사람

0개의 댓글