1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
S = input()
zero = 0
one = 0
prev = S[0]
if prev == '0':
zero+=1
else:
one+=1
for i in range(1, len(S)):
if S[i] != prev:
if S[i] == '0':
zero+=1
else:
one+=1
prev = S[i]
print(min(one, zero))
|
cs |
이전 문자가 0인지 1인지 기록해뒀다가 문자가 바뀌면 0으로 바뀌었는지 1로 바뀌었는지에 따라 0으로 바뀐 횟수, 1로 바뀐 횟수를 누적시킨 후,
둘 중 더 작은 값을 출력.
그리디 분류에서 제대로 푸는 문제가 거의 없는데 이 문제는 그리디에서 처음으로 느껴보는 순한맛..