문제 출처 : www.acmicpc.net/problem/1439
문제 풀이를 위한 아이디어
1. 0과 1 중 연속된 문자열의 갯수가 적을 것을 찾는다.
-> ex) 0011001 과 같은 Input은 "00" , "11", "00", "1" 처럼 구역을 나눌 수 있고 0 구역은 2번 1 구역도 2번이기 때문에 행동의 최소 횟수는 2번입니다.
S = list(input())
A = []
B = []
k = S.pop(0)
while S:
temp = S.pop(0)
if k[-1] == temp:
k += temp
elif k[-1] != temp and temp == '1':
A.append(k)
k = temp
elif k[-1] != temp and temp == '0':
B.append(k)
k = temp
if k[-1] == '0':
A.append(k)
else:
B.append(k)
print(min(len(A),len(B)))
author : donghak park
contact : donghark03@naver.com
## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.
'📊알고리즘, 문제풀이 > 📈문제풀이 (PS)' 카테고리의 다른 글
[알고리즘][Python] 백준 1260 DFS와 BFS 문제 풀이 (0) | 2021.01.08 |
---|---|
[알고리즘][Python] 백준 1107 리모컨 문제 풀이 (0) | 2021.01.08 |
[알고리즘][Python] 백준 15686 치킨 배달 문제 풀이 (0) | 2021.01.07 |
[알고리즘][Python] 백준 3190 뱀 문제 풀이 (0) | 2021.01.07 |
[알고리즘][Python] 백준 18406 럭키 스트레이트 문제 풀이 (0) | 2021.01.02 |