UP
[백준 2875 : PYTHON] 대회 or 인턴 본문
문제 풀기 : 2875번
문제
2명의 여학생과 1명의 남학생이 팀을 결성해서 나간다.
N명의 여학생과 M명의 남학생이 팀원을 찾고 있다.
대회에 참여하려는 학생들 중 K명은 반드시 인턴쉽 프로그램에 참여해야 한다.
인턴쉽에 참여하는 학생은 대회에 참여하지 못한다.
만들 수 있는 최대의 팀 수를 구한다.
문제풀이
최적의 해를 구하는 그리디 문제이다.
각각의 N명, M명에서 여학생이 2명, 남학생이 1명을 빼면서 팀을 결성한다.
K명의 인턴쉽 참가자가 필요하기 때문에 팀을 결성하고 남은 N + M명이 K보다는 클 때 만든다는 조건을 설정한다.
K보다 작아질 때 팀을 그만 만들고 현재까지 만든 팀에서 -1을 해준다.
전체코드
# n : 여학생의 수, m : 남학생의 수, 인턴쉽에 참여해야하는 인원 k
n, m, k = map(int, input().split())
# 팀 카운트
count = 0
while n >= 0 and m >= 0 and n + m >= k:
n -= 2
m -= 1
count += 1
# n + m < k이 되는 시점에 팀을 하나 빼주어야 한다.
print(count - 1)
반응형
'알고리즘 > 그리디' 카테고리의 다른 글
[백준 1931 : PYTHON] 회의실 배정 (0) | 2020.10.23 |
---|---|
[백준 11399 : PYTHON] ATM (0) | 2020.10.20 |
[백준 1783 : PYTHON] 병든 나이트 (0) | 2020.10.20 |
[백준 10610 : PYTHON] 30 (0) | 2020.10.18 |
[백준 11047 : PYTHON] 동전 0 (0) | 2020.10.18 |
Comments