반응형
문제설명
https://programmers.co.kr/learn/courses/30/lessons/12982
코딩테스트 연습 - 예산
S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는
programmers.co.kr
사고과정
- 최대한 많은 부서의 물품을 구매해 줄 수 있도록 이라는 문장에서 그리디 유형이라는 것을 예상했다. 그리고 그리디는 정렬 과 자주 연계되기 때문에 정렬도 같이 생각함!
- 문제에서 부서별로 신청한 금액이 d 배열로 주어지는데, 예산 안에서 최대한 많은 부서에 지원해야 하니까 d 배열을 오름차순으로 정렬한 뒤 d를 for loop를 돌면서 예산을 차감하다가 0보다 작아지는 순간 break하면 된다. 0보다 크거나 같을 경우에는 계속 지원가능한 부서 카운트 +1 해준다
풀이
def solution(d, budget):
# 정렬
d.sort()
cnt = 0
for x in d:
if budget - x >= 0:
budget -= x
cnt += 1
else:
break
return cnt
반응형
'알고리즘 삽질장' 카테고리의 다른 글
[프로그래머스] 2016년 (0) | 2021.12.08 |
---|---|
[프로그래머스] 두 개 뽑아서 더하기 (0) | 2021.12.08 |
[프로그래머스] 3진법 뒤집기 (0) | 2021.12.08 |
[프로그래머스] 약수의 개수와 덧셈 (0) | 2021.12.07 |
[프로그래머스] 폰켓몬 (0) | 2021.12.07 |