문제에서 B와 R이 입력되었을 때, BR로 색칠하여 만들면 되는 문제이다.
xxxxxx 일 때 BRBRBB
B로 전부 칠한 후, R로 칠하면 된다.
BBBBBB
BRBRBB
3번
반복문 두 번으로 현재 인덱스에서 해당 구간이 B인가 R인가로 체크해도 되지만, (다른 사람 블로그를 보니) B -> R or R -> B로 바뀐다면 횟수를 1씩 증가시켜도 된다.
기존 소스
import sys
read = sys.stdin.readline
n = int(read())
neighbor = list(read().rstrip())
bcnt = 0
rcnt = 0
check = False
for in_neighbor in neighbor:
if check and in_neighbor == 'B':
continue
elif (not check) and in_neighbor == 'B':
bcnt += 1
check = True
else:
check = False
check = False
for in_neighbor in neighbor:
if check and in_neighbor == 'R':
continue
elif (not check) and in_neighbor == 'R':
rcnt += 1
check = True
else:
check = False
answer = min(bcnt, rcnt) + 1
print(answer)
import sys
input = sys.stdin.readline
N = int(input())
s = input().rstrip()
cnt = {'B': 0, 'R': 0}
cnt[s[0]] += 1
for i in range(1, N):
if s[i] != s[i - 1]:
cnt[s[i]] += 1
print(min(cnt['B'], cnt['R']) + 1)