난이도🖤🤍🤍 | 풀이시간 20분 | 제한시간 2초 | 메모리제한 128MB | 핵심유형 https://www.acmicpc.net/problem/1439
https://velog.io/@eastgloss0330/%EB%B0%B1%EC%A4%801430-%EB%92%A4%EC%A7%91%EA%B8%B0Python
# 입력
s = input()
# 연속된 0 덩이 수, 연속된 1 덩이 수 구하기
zero = 0
one = 0
prev = s[0]
if prev == '0':
zero += 1
else:
one += 1
for current in s[1:]:
# 연속된 숫자임
if current == prev:
continue
# 연속된 숫자가 아님
else:
if current == '0':
zero += 1
else:
one += 1
prev = current
# 연속된 덩이 수가 적은 것을 바꾸는 게 효율적
# 바꾸는 횟수는 덩이 수와 같다
if zero < one:
print(zero)
else:
print(one)
data = input()
count0 = 0 # 전부 0으로 바꾸는 경우
count1 = 0 # 전부 1로 바꾸는 경우
# 첫 번째 원소에 대해서 처리
if data[0] == '1':
count0 += 1
else:
count1 += 1
# 두 번째 원소부터 모든 원소를 확인하며
for i in range(len(data) - 1):
if data[i] != data[i + 1]:
# 다음 수에서 1로 바뀌는 경우
if data[i + 1] == '1':
count0 += 1
# 다음 수에서 0으로 바뀌는 경우
else:
count1 += 1
print(min(count0, count1))