n, m, k = map(int, input().split())
team = 0
while(n >= 2 and m >= 1 and n+m-3 >= k) :
n -= 2
m -= 1
team += 1
print(team)
먼저 k 인턴에 대한 조건이 없다고 가정하고 문제를 풀었다.
n 이 2, m 이 1 일 때 한 팀이 구성되므로
while (n >= 2 and m >= 1) 이 성립할 때마다 한 팀이 추가 되는 것이다.
다음으로 k 인턴에 대한 조건을 추가했다.
저 조건 뒤에 n + m - 3 >= k 을 더해주면 된다
왜냐면 n + m 즉, 남은 학생 수에다가 3명 (n-2명, m-1명으로 구성된 한 팀) 을 제외한 숫자가 k 이상일 때 인턴을 나갈 수 있기 때문이다.
'알고리즘 > 그리디' 카테고리의 다른 글
[Python] 백준 1783: 병든 나이트 (0) | 2021.09.23 |
---|---|
[Python] 백준 10610: 30 (0) | 2021.09.14 |
[Python] 백준 11047: 동전 0 (0) | 2021.09.07 |
[2019 카카오 신입 공채] 무지의 먹방 라이브 (0) | 2021.09.07 |
[K 대회 기출] 만들 수 없는 금액 (0) | 2021.09.07 |
댓글