[Python]알고리즘/백준
[그리디 알고리즘] ▲ 2875번 - 대회 or 인턴
HSY_mumu
2022. 3. 22. 23:48
728x90
[백준] 2875번 - 대회 or 인턴
(풀이1)
1) 문제 해결 아이디어
아이디어는 쉽게 떠올렸으나 탈출 조건을 세우는데 오류를 겪었다.
여학생 n명, 남학생 m인 총 n + m 명 중에서 k명은 인턴쉽에 참가해야한다.
한 팀은 2 : 1 로 구성되어 있기 때문에
while문 내에서 팀(team)을 1개 만들 때 마다 여학생(n)은 2명씩, 남학생(m)은 1명씩 뺀다.
하지만 n이나 m이 음수가 되거나 나머지 학생수(n+m)이 인턴쉽 참가인원(k)보다 작아질 경우,
현재 결성된 팀의 개수에서 1개를 뺸 후 탈출한다.
2) 소스코드
n, m, k = map(int, input().split())
team = 0 # 팀 수
while True:
# 탈출 조건
if(n < 0 or m < 0 or n + m < k):
team -= 1 # 범위 외이므로 1개 차감
break
# 팀 결성
team += 1 # 팀 수
n -= 2
m -= 1
print(team)
728x90