문제풀이/BOJ

[Python] BOJ/백준 1439번 뒤집기

서채리 2022. 9. 4. 19:08

[문제]

https://www.acmicpc.net/problem/1439

 

1439번: 뒤집기

다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모

www.acmicpc.net

 

[풀이]

  1. 입력받은 문자열을 한 글자씩 리스트에 넣는다.
  2. 첫 번째 문자가 0이면 zero_count를 1 더해주고, 1이면 one_count를 1 더해준다.
    zero_count: 0을 1로 바꿔야 하는 횟수     one_count: 1을 0으로 바꿔야 하는 횟수
  3. 반복문으로 문자열의 (i - 1) 인덱스와 (i) 인덱스의 값이 일치하는지 확인한다.
    • 일치하지 않을 경우 (i) 인덱스의 값이 0이면 zero_count에 1을 더하고 1이라면 one_count에 1을 더한다.
  4. zero_count와 one_count 중 더 작은 수를 출력한다.

 

[코드]

import sys

S = list(sys.stdin.readline()[:-1])

zero_count, one_count = 0, 0
if S[0] == '0':
    zero_count += 1
else:
    one_count += 1

for i in range(1, len(S)):
    if S[i-1] != S[i]:
        if S[i] == '0':
            zero_count += 1
        else:
            one_count += 1
print(min(zero_count, one_count))