728x90
https://programmers.co.kr/learn/courses/30/lessons/12982
코딩테스트 연습 - 예산
S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는
programmers.co.kr
처음에 문제를 보고 모든 경우의 수를 다 생각해야 하나 고민에 빠졌었다.
곰곰히 생각해보니 그럴 필요 없이 for문 하나만으로도 해결을 할 수 있을 것 같았다.
정답 풀이
def solution(d, budget):
answer = 0
d = sorted(d)
for i in range(len(d)) :
if budget >= d[i] :
budget -= d[i]
answer += 1
return answer
먼저 d를 오름차순으로 정렬을 하여 for문을 돌렸다. budget보다 d의 요소가 작으면 구매를 해 줄 수 있으니까 budget에서 d의 요소를 빼고 answer에 1을 더했다.
for문을 돌면서 budget은 계속 줄어들고 d의 요소와 순차적으로 비교를 할 수 있으므로 모든 경우의 수를 생각하지 않아도 되었다.
GitHub - YOOHYOJEONG/algorithm_practice: 알고리즘 공부 및 코딩테스트 준비
알고리즘 공부 및 코딩테스트 준비. Contribute to YOOHYOJEONG/algorithm_practice development by creating an account on GitHub.
github.com
728x90