Algorithm/Beakjoon

[Beakjoon] 백준 2875번 Python

sbs1621 2022. 6. 17. 18:00
Beakjoon 2875, 대회 or 인턴
solved.ac Bronze3
Greedy 알고리즘

문제

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

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

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

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

입력

N을 입력받는다. N는 최대 105개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다.

출력

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

Solution

W, M, I = map(int, input().split())
count = 0
for i in range(I):
    if W == M*2:
        W -= 1
    elif W > M*2:
        W -= 1
    elif W < M*2:
        M -= 1

while True:
    W -= 2
    M -= 1
    if W < 0 or M < 0:
        break
    count += 1

print(count)

풀이

남성의 인원수의 두배가 여성의 인원수보다 많다면 남성 -1

여성의 인원수가 남성의 인원수의 두배보다 많다면 여성 -1

여성, 혹은 남성의 인원수가 0보다 작아질 때까지 여성 -2, 남성 -1


틀린 게 있다면 댓글 달아주세요~~

 

2875번: 대회 or 인턴

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

www.acmicpc.net