https://www.acmicpc.net/problem/1439
1439번: 뒤집기
다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모
www.acmicpc.net
0과 1이 모여있는 집단(?) 의 갯수를 구해서 더 적은 쪽을 출력하면 되는 문제였다.
cnt = [0, 0] 을 만들어서 주어진 문자열을 순회하면서 앞의 문자와 뒤의 문자가 달라질 때마다 해당하는 인덱스에 카운트를 했다.
이때 주의할 점은 '0011' 과 같은 경우에 마지막 11이 카운트가 되지 않기 때문에 주어진 문자열의 맨 뒤에 '2'를 추가해서 무조건 카운트가 되도록 했다.
import sys
input = sys.stdin.readline
S = input().rstrip() + '2'
cnt = [0, 0]
for i in range(len(S) - 1):
if (S[i] != S[i+1]):
cnt[int(S[i])] += 1
print(min(cnt))
'알고리즘💻 > 그리디' 카테고리의 다른 글
BOJ 18310번: 안테나 (0) | 2023.09.16 |
---|---|
BOJ 11501번: 주식 (0) | 2023.09.13 |
BOJ 9009번: 피보나치 (0) | 2022.01.12 |
BOJ 18921번: Cost of Subtree (0) | 2021.08.18 |
BOJ 2450번: 모양 정돈 (0) | 2021.08.04 |