728x90
https://programmers.co.kr/learn/courses/30/lessons/12982?language=python3
접근
예산 내에서 최대한 많은 부서의 물품을 지원해주어야 한다. 이를 위해 그리디로 접근을 하였다. 먼저 신청금액을 오름차순으로 정렬하고 신청금액이 작은 순서부터 탐색하여 예산에서 빼준다. 빼준 값이 0이상일 때 최종해를 증가시켰다.
구현
- 먼저 부서들이 신청한 금액이 들어있는 d를 오름차순으로 정렬한다.
- 이제 d의 원소를 하나씩 접근하여 현재 남은 예산에서 원소를 빼주고
- 0 이상일 때 answer를 증가시킨다.
- 이후 현재의 cost만큼 예산에서 빼준다.
def solution(d, budget):
answer = 0
d.sort()
for cost in d:
if budget - cost >= 0:
answer += 1
budget -= cost
else:
break
return answer
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[Level 2] 배달 (0) | 2021.11.08 |
---|---|
[Level 2] 행렬의 곱셈 (0) | 2021.09.27 |
[Level 2] 2개 이하로 다른 비트 (0) | 2021.09.27 |
[Level 2] 압축 (0) | 2021.09.23 |
[Level 2] 쿼드압축 후 개수 세기 (0) | 2021.09.15 |