[코테 스터디] 그리디, 문자열 뒤집기
Q03. 문자열 뒤집기
🐣문제
다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있습니다. 다솜이는 이 문자열 S에 있는 모든 숫자를 같게 만들려고 합니다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것입니다. 뒤집는 것은 1을 0으로, 0을 1로 바꾸는 것을 의미합니다.
문자열 S가 주어졌을 때, 다솜이가 해야 하는 행동의 최소 횟수를 출력하세요.
백준 링크 | https://www.acmicpc.net/problem/1439
🐥풀이
- temp에 뒤집는 기준을 두고 기준과 다른 숫자가 나오면 뒤집는다.
- 모두 1로 뒤집는 횟수를 구한다.
- 모두 0으로 뒤집는 횟수를 구한다.
- 둘 중 최솟값을 답으로 출력한다.
🐓코드
string = input()
temp = string[0] # 뒤집는 기준
count = [0, 0] # 0으로 뒤집는 횟수, 1로 뒤집는 횟수
count[int(temp)] += 1 # 첫번째 기준 뒤집고 횟수++
for s in string:
# 기준 다르면 뒤집기
if s!=temp:
temp = s # 뒤집고 기준 바꾸기
count[int(temp)] += 1 # 뒤집었으니까 횟수 ++
print(min(count)) # 최솟값 출력
⭐2022.03.27
내 코드지만 오랜만에 봐서 바로 이해 못했다. 따로 코테 공부도 슬슬 다시 시작해야겠다.
Author And Source
이 문제에 관하여([코테 스터디] 그리디, 문자열 뒤집기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@thguss/코테-스터디-그리디-문자열-뒤집기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)