Algorithm/백준(BOJ)

[Python] 2875 - 대회 or 인턴

Gr00t 2021. 1. 6. 00:06

문제

백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.)

백준대학교는 뛰어난 인재들이 많아 올해에도 N명의 여학생과 M명의 남학생이 팀원을 찾고 있다. 대회에 참여하려는 학생들 중 K명은 반드시 인턴쉽 프로그램에 참여해야 한다. 인턴쉽에 참여하는 학생은 대회에 참여하지 못한다.

백준대학교에서는 뛰어난 인재들이 많기 때문에, 많은 팀을 만드는 것이 최선이다.

여러분은 여학생의 수 N, 남학생의 수 M, 인턴쉽에 참여해야하는 인원 K가 주어질 때 만들 수 있는 최대의 팀 수를 구하면 된다.

입력

  • 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N),

출력

  • 만들 수 있는 팀의 최대 개수을 출력하면 된다.


풀이

  • 간단한 그리디 문제
  • 한 팀씩 만들어가며 필요한 인원을 제외한다

import sys

input = sys.stdin.readline


def CorI(women, men, intern):
    team = 0
    while women + men - intern >= 3 and men > 0 and women > 1:
        women -= 2
        men -= 1
        team += 1
    return team


if __name__ == "__main__":
    N, M, K = map(int, input().split())
    res = CorI(N, M, K)
    print(res)

'Algorithm > 백준(BOJ)' 카테고리의 다른 글

[JAVA] 10951 - A+B - 4  (0) 2021.01.06
[Python] 10610 - 30  (0) 2021.01.06
[Python] 11047 - 동전 0  (0) 2021.01.06
[JAVA] 10950 - A+B - 3  (0) 2021.01.04
[JAVA] 2588 - 곱셈  (0) 2021.01.04