본문 바로가기

코딩테스트/Python

[프로그래머스] 예산

내 코드

def solution(d, budget):
    d.sort()
    answer=0
    for i in d:
        if budget < i: break
        budget-=i
        answer+=1
    return answer

가장 만은 부서에게 지원해주면되므로 신청한 금액이 적은 부서부터 지원해주면된다. 오름차순으로 정렬한뒤 예산내로 지원가능한 부서를 세주었다.

 

다른사람 코드

def solution(d, budget):
    d.sort()
    while budget < sum(d):
        d.pop()
    return len(d)

이렇게 sum을 사용한 코드가 있었다. 이 코드는 sum이 많은 시간을 잡아먹게되므로 효율성이 떨어진다.