문제풀이/기타
[파이썬] [슬라이딩] 백준 1522 문자열 교환
승무_
2023. 3. 16. 16:09
문제
https://www.acmicpc.net/problem/1522
1522번: 문자열 교환
a와 b로만 이루어진 문자열이 주어질 때, a를 모두 연속으로 만들기 위해서 필요한 교환의 회수를 최소로 하는 프로그램을 작성하시오. 이 문자열은 원형이기 때문에, 처음과 끝은 서로 인접해
www.acmicpc.net
코드
import sys
result=sys.maxsize
s=input()
if s=='b':
print(0)
exit(0)
countB=s.count('b')
tempB=s[:countB].count('b')
result=min(result, countB-tempB)
for i in range(1,len(s)):
if s[i-1]=='b':
tempB-=1
if s[(i+countB-1)%len(s)]=='b':
tempB+=1
result=min(result, countB-tempB)
print(result)
시간 복잡도
O(문자열의 길이)