728x90
https://programmers.co.kr/learn/courses/30/lessons/12982
처음에 문제를 보고 모든 경우의 수를 다 생각해야 하나 고민에 빠졌었다.
곰곰히 생각해보니 그럴 필요 없이 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의 요소와 순차적으로 비교를 할 수 있으므로 모든 경우의 수를 생각하지 않아도 되었다.
728x90