반응형
Notice
Recent Posts
Recent Comments
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Archives
Today
Total
관리 메뉴

UP

[백준 2875 : PYTHON] 대회 or 인턴 본문

알고리즘/그리디

[백준 2875 : PYTHON] 대회 or 인턴

cijbest 2020. 10. 18. 19:35

문제 풀기 : 2875번

 

2875번: 대회 or 인턴

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

www.acmicpc.net

문제

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