Algorithm/백준
[Python] 1439 뒤집기
내영잉
2023. 1. 31. 10:15
1. 문제 📚
https://www.acmicpc.net/problem/1439
2. 입출력 예 📋
3. 알고리즘 ✅
최소 횟수를 구하기 위해선 가장 적은 뭉텅이를 뒤집어야한다 → 그리디
예를 들어 0001100 이면 뭉텅이로 자르게 되면 0은 2개고 1은 1개이므로 1만 뒤집으면 최소행동이 될 것이다
따라서, 1. 뭉텅이로 잘라주고 (0, 1, 0)
2. 그 갯수를 세어 가장 작은 것을 프린트해주면 된다
4. 소스코드 💻
import sys
N = list(sys.stdin.readline().strip())
# 뭉텅이로 잘라줌
stack = [N[0]]
for i in range(1, len(N)):
if N[i - 1] != N[i]:
stack.append(N[i])
zero_count = stack.count('0')
one_count = stack.count('1')
print(min(zero_count, one_count))