n = int(input())
col = input()
# 'B' 문자열을 모두 '-'로 바꿈 (없어도 될 듯)
col_b = col.replace('B','-')
# 바꾼 문자열을 기준으로 쪼개서 리스트에 담기
rr = col_b.split('-')
# 위의 과정에서 공백값이 들어가서 공백값을 제거해줌
rr = list(filter(None, rr))
# 'B'를 먼저 칠하고 'R'을 칠했을 때 걸리는 작업 횟수
result_b = len(rr)+1
# 'R' 문자열을 모두 '-'로 바꿈 (없어도 될 듯)
col_r = col.replace('R','-')
# 바꾼 문자열을 기준으로 쪼개서 리스트에 담기
bb = col_r.strip().split('-')
# 위의 과정에서 공백값이 들어가서 공백값을 제거해줌
bb = list(filter(None, bb))
# 'R'를 먼저 칠하고 'B'을 칠했을 때 걸리는 작업 횟수
result_r = len(bb) + 1
# 두 가지의 결과중에서 더 적은 수 출력
print(result_b if result_b < result_r else result_r)
문제에서 제공받은 힌트는 한가지로 먼저 칠한 후 나머지 색을 칠하는 것
그럼 문자열이 달라질 때마다 끊는다고 할 때 더 많은 개수를 가지고 있는 색을 칠하는게 작업 횟수를 줄일 수 있다.
그래서 두 개 중 하나로 쪼개서 리스트에 담은 후 길이를 비교해보려고 고민
코드 작성시에는 문자를 바꾸고 쪼갰는데 안해도 될일이였던 것 같다
'백준' 카테고리의 다른 글
백준 1931번: 회의실 배정 (파이썬) (0) | 2024.05.29 |
---|---|
백준 10870번: 피보나치 수열 5 (0) | 2023.08.08 |
백준 1302번: 베스트 셀러 (파이썬) (0) | 2023.08.01 |
백준 25192번: 인사성 밝은 곰곰이 (파이썬) (0) | 2023.07.30 |
백준 18258번: 큐 2 (파이썬) (0) | 2023.07.30 |