백준 20365번 파이썬

DARTZ·2023년 4월 12일
0

알고리즘

목록 보기
111/135

풀이 1

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가 나왔다.

풀이 2

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을 더했다. (처음에 한 색으로 전체 칠한다는 조건)

profile
사람들이 비용을 지불하고 사용할 만큼 가치를 주는 서비스를 만들고 싶습니다.

0개의 댓글