[백준 20365] 블로그2

Junyoung Park·2022년 2월 27일
0

코딩테스트

목록 보기
115/631
post-thumbnail

1. 문제 설명

블로그2

2. 문제 분석

그리디 알고리즘이다. 지금 이 시점에서 가장 적게 번갈아 사용할 수 있는 색깔을 택한다.

다시 말해, 인덱스를 따라가면서 색깔이 같다면 한 번 더 칠할 필요가 없다. 바뀐다면 이 색을 칠하는 횟수를 한 번 더 추가한다.

3. 나의 풀이

import sys

n = int(input())
paint = sys.stdin.readline().rstrip()
color = [0, 0]

if paint[0] == 'R': color[0] += 1
else: color[1] += 1
# 초깃값 color[0]에는 빨간색, color[1]에는 파란색 연속되지 않았을 때 카운트한다.
for i in range(1, n):
    if paint[i] != paint[i-1]:
        # 이전 색깔과 같다면 칠할 필요가 없다.
        if paint[i] == 'R': color[0] += 1
        else: color[1] += 1

print(min(color)+1)

profile
JUST DO IT

0개의 댓글