[백준] 1439번 - 뒤집기

yerimstar·2021년 10월 7일
0

그리디

목록 보기
2/10

아이디어

전체 문자열을 순회하면서 0과 1의 연속된 구간 횟수를 저장한다.
두 값 중에 더 작은 값이 뒤집기 행동의 최소 횟수가 된다.

생각해본 예시
0101000 -> 0은 3구간, 1은 2구간이므로 최소 횟수는 2가 된다.

코드

# 뒤집기
# 0101000 -> 최소 2번
S = list(input())

count_0 = 0
count_1 = 0

for i in range(len(S)): # 문자열을 순회하면서
    if i == 0:
        if S[i] == '0':
            count_0 += 1
        elif S[i] == '1':
            count_1 += 1
    else:
        if S[i] == '0':
            if S[i - 1] != S[i]:
                count_0 += 1
        elif S[i] == '1':
            if S[i - 1] != S[i]:
                count_1 += 1

print(min(count_0,count_1))
profile
백엔드 개발자

0개의 댓글