DHistory

[Baekjoon] Greedy - 17615 볼 모으기 본문

Computer Science/Algorithm

[Baekjoon] Greedy - 17615 볼 모으기

ddu0422 2023. 8. 30. 09:33

문제

 

17615번: 볼 모으기

첫 번째 줄에는 볼의 총 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 다음 줄에는 볼의 색깔을 나타내는 문자 R(빨간색 볼) 또는 B(파란색 볼)가 공백 없이 주어진다. 문자열에는 R 또는 B 중 한 종류만 주

www.acmicpc.net

 

풀이

import sys

n = int(sys.stdin.readline().rstrip())
balls = sys.stdin.readline().rstrip()[:n]


def solution(balls):
    r = balls.split('B')
    b = balls.split('R')

    # 전체 움직일 볼의 개수 - 왼쪽 or 오른쪽중에 있는 더 많은 동일한 볼의 개수를 제거 (움직이지 않음)
    return min(
        balls.count('R') - max(len(r[0]), len(r[-1])),
        balls.count('B') - max(len(b[0]), len(b[-1]))
    )


print(solution(balls))

 

채점 결과