문제
풀이
최초 풀이
최초에 경우 수를 잘못 나눴다.
최대값이 무조건 min(A,B)인 것 까진 좋았으나,
최소값이 3가지 케이스로 나뉜다고 파악했다.
오답
채점용 input 파일로 채점한 결과 fail 입니다.
(오답 : 1010개의 테스트케이스 중 989개가 맞았습니다.)
테스트케이스 적중률이 9할인걸 보고
경우의 수에 잘못 접근한걸 느껴서 최소값 경우수를 다시 정리했다.
정답 풀이
입출력 예제를 잘보면 규칙을 찾을 수 있다.
- 최대값은 무조건 min(A,B).
- 최소값은 두 케이스로 나뉜다.
- (A+B) > N 이라면, (A+B)-N.
- (A+B) <= N 이라면, 0.
T = int(input())
for test_case in range(1, T+1):
N, A, B = map(int, input().split())
if A+B > N: # N보다 많으면 A+B - N
print('#'+str(test_case), min(A,B), A+B-N)
else: # N과 같거나 작으면 0
print('#'+str(test_case), min(A,B), 0)
댓글남기기