백준(Python) 풀이/그리디 알고리즘
백준(Python) 1439번 뒤집기 풀이
개발윗미
2021. 12. 13. 14:00
Python으로 구현한 1439번 뒤집기 문제 풀이입니다.
https://www.acmicpc.net/problem/1439
1439번: 뒤집기
다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모
www.acmicpc.net
s = input()
change_0 = 0
change_1 = 0
if s[0] == '0' :
change_1 += 1
else :
change_0 += 1
for i in range(len(s) - 1) :
if s[i] != s[i+1] :
if s[i+1] == '0' :
change_1 += 1
else :
change_0 += 1
print(min(change_0, change_1))
1. 입력받은 문자열 s의 첫 번째 원소에 대하여 그 값이 0이라면 change_1을 1 증가시키고 그렇지 않다면 change_0을 1 증가시킨다.
2. 반복문을 통해 두 번째 원소부터 모든 원소를 확인하는데, 현재의 값과 그 다음 값이 다를 경우 다시 조건문을 통해
다음 수가 1일 경우 0으로 바꿔준다 생각하여 change_0을 1 증가시킨다. 반대로 다음 수가 0일 경우 1로 바꿔준다
생각하여 change_1을 1 증가시킨다. 이와 같은 작업을 반복하고 최종적으로 change_0과 change_1 중 더 작은 값을 출력한다.