BOJ 2875 대회 or 인턴

LONGNEW·2021년 1월 21일
0

BOJ

목록 보기
80/333

https://www.acmicpc.net/problem/2875
시간 1초, 메모리 128MB
input :

  • N M K (0 ≤ M, N ≤ 100, 0 ≤ K ≤ M+N),

output :

  • 팀의 최대 개수을 출력

조건 :

  • 2명의 여학생과 1명의 남학생이 팀을 결성
  • 대회에 참여하려는 학생들 중 K명은 반드시 인턴쉽 프로그램에 참여해야 한다. 인턴쉽에 참여하는 학생은 대회에 참여하지 못한다.

쿸쿠... 아직은 브론즈를 벗어나지 못했다고 볼 수 있지..

처음에 인턴을 가야 하는 사람이 k명이다 라고 했을 때,

그렇다면 여자의 인원이 남자의 2배 보다 크면 여자 쪽에서 k명을 빼고 아니면 남자 쪽에서 빼면 되지 않을까? 했지만, 이렇게 할 경우에 내가 실제로 만들 수 있는 팀의 수보다 적어질 수가 있다.

그래서 총 인원 수를 더한 값이 k 보다 크면 인턴을 보낼 인원은 계속 존재하기 때문에
이 경우를 while문의 조건에 추가한다.

팀을 구성 하다가 반복문이 끝나면, 현재 k명을 남기지 않고 모두 팀을 구성하도록 했기 때문에 마지막에 구성된 팀은 빼주어야 한다.

import sys

w, m, k = map(int, sys.stdin.readline().split())
ret = 0
while w + m >= k and w >= 0 and m >= 0:
    w -= 2
    m -= 1
    ret += 1
print(ret - 1)

0개의 댓글