MapleStory Finger Point

[BOJ] #1439 - 뒤집기

2021. 6. 25. 13:22Problem Solving/Online Judge

 

1439번: 뒤집기

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

www.acmicpc.net

 

 

** 문제 유형

  • 그리디

 

** 풀이

  1. 문자열에 있는 숫자를 모두 0 또는 모두 1로 만들어야 함
  2. 문자열의 길이는 100만 이하이므로, 시간 복잡도는 O(N)에 해결해야 함

 

data = input()

states = [0] * 2 # states[0-1]: 0-1이 연속으로 오는 집합 수
states[int(data[0])] += 1

for i in range(1, len(data)):
    if data[i] != data[i - 1]: # 0과 1이 바뀔 때
        states[int(data[i])] += 1

print(min(states))

 

 

 

'Problem Solving > Online Judge' 카테고리의 다른 글