인천의 자유인

[Python] 예산 - 프로그래머스(Lv.1) 본문

Python/Python코딩테스트

[Python] 예산 - 프로그래머스(Lv.1)

Youngook 2024. 5. 24. 08:00
728x90
반응형

 

반응형

 

나의 문제 풀이

def solution(d, budget):
    a, count = 0,0
    d.sort()
    for i in d:
        a += i
        if a > budget:
            break
        count += 1
    return count

 

a는 더하는 숫자이고 count는 물품을 구매할 수 있는 최대 개수입니다.

먼저 b를 sort로 해서 오름차순으로 정렬합니다. 왜냐하면 가장 적은 수부터 구매를 할 수록 최대한 많은 양을 구입할 수 있기 때문입니다. 지갑(budget)에 들어 있는 돈의 가격을 추월하기 전까지 리스트의 구매값을 차례대로 더합니다. a가 budget에 있는 돈을 넘었을 경우 break를 하고 구매 개수를 return합니다.

728x90
반응형