728x90
문제 : https://www.acmicpc.net/problem/2875
굉장히 간단한 문제인데 어렵게 꼬아서 생각해서 오래 걸렸던 문제다.
크게 두 가지 방법이 있다곤 하는데, 영 이해가 안돼서 그냥 간단하게 풀었다.
python3 코드
N, M, K = map(int, input().split(" ")) team = 0 while N >= 2 and M >= 1 and N+M >= K+3: N -= 2 M -= 1 team += 1 print(team)
풀이
그리디 알고리즘을 활용하여, 조건에 맞춰서 팀을 만든다. 라는 문제를 반복 해결하였다.
while 반복문을 계속 돌면서, 팀을 하나씩 만들어준다.
팀의 구성원은 2여1남이므로, 매 루프마다 N-2, M-1을 해준다.
팀을 만들기 위해서는
- 여학생이 2명 이상일 것 (N >= 2)
- 남학생이 1명 이상일 것 (M >= 1)
- 팀을 만들어 총 인원이 -3이 된 후에도 인턴쉽에 참가 할 K명의 학생이 남아있을 것 (N+M-3 >= K)
의 조건이 필요하므로, 위의 조건을 while문의 조건으로 준다.
'알고리즘 풀기' 카테고리의 다른 글
[백준] 1967 트리의 지름 python3 (0) | 2020.03.10 |
---|---|
[백준] 14501 퇴사 python3 (0) | 2020.03.08 |
[백준] 1414 불우이웃돕기 python3 (0) | 2020.02.29 |
코테) 기능개발 (0) | 2019.12.18 |