20210116 // 삼성 SW Expert 아카데미 // 10200

2021. 1. 16. 17:20Programming/SW Expert Academy

삼성 SW Expert 아카데미 10200번 "구독자 전생" 문제입니다.

TC = int(input())
 
for tc in range(1, TC+1):
    N,A,B = map(int, input().split())
    maxSub = min(A,B)
    minSub = max(A+B-N, 0)
    print("#%s"%tc, maxSub, minSub)

P채널과 T채널 모두 구독하고 있는 사람의 수의 최댓값과 최솟값을 출력하는 문제다.

 

생각해보면 쉬운 문제라고 할 수 있다.

 

최대가 될 경우는 양쪽 구독자가 최대한 많이 겹치는 경우이므로 두 질문 중 답변이 적은 쪽이 최대이다.

 

최소가 되는 경우는 양쪽 구독자가 최대한 겹치지 않는 경우이다.

 

이 때는 양쪽 구독자의 합이 인원수가 넘어가지 않으면 상관 없지만 인원수가 넘어갈 경우는 그 인원수를 뺀 만큼이 최소 양쪽 구독자이다. 따라서 A+B-N이거나 0이 된다.