[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