import sys
N = int(sys.stdin.readline())
datas = sys.stdin.readline().rstrip()
def solution(datas):
rDatas = [v for v in datas.split("B") if v]
bDatas = [v for v in datas.split("R") if v]
answer = min(len(rDatas) + 1, len(bDatas) + 1)
return answer
print(solution(datas))
B와 R을 기준으로 2개의 리스트를 만들어서 분리해주었다.
메모리는 44728KB 시간은 80ms가 나왔다.
import sys
N = int(sys.stdin.readline())
inputValue = sys.stdin.readline()
def solution(N, inputValue):
colors = {"R": 0, "B": 0}
colors[inputValue[0]] = 1
for i in range(1, N):
if inputValue[i] != inputValue[i - 1]:
colors[inputValue[i]] += 1
return min(colors["R"], colors["B"]) + 1
print(solution(N, inputValue))
딕셔너리를 사용한 풀이이다.
전 값이랑 비교해주면서 저장했다. 이후에 횟수에 1을 더했다. (처음에 한 색으로 전체 칠한다는 조건)