BOJ/Python
[BOJ/백준] 1439 - 뒤집기 (Python)
tjdms4327
2025. 1. 28. 15:59
문제
1과 0으로만 이루어진 문자열이 있다.
이를 모두 같은 숫자로만 만들기 위해 전체 혹은 부분을 0은 1로, 1은 0으로 뒤집는다.
이 행동의 최소 횟수를 출력하라.
풀이
각각의 숫자로 이루어진 부분을 구하고 둘 중 개수가 적은 만큼이 최소횟수가 된다.
정규표현식 모듈인 re을 사용한다.
findall로 각각 패턴에 매칭되는(1로만 이루어진, 0으로만 이루어진) 부분을 찾아 리스트에 저장한다.
두 리스트의 개수 중 작은 것을 구하면 된다.
코드
import sys
input=sys.stdin.readline
import re
s=input().strip()
zeros=re.findall(r'0+',s)
ones=re.findall(r'1+',s)
print(min(len(zeros), len(ones)))