[Python] 프로그래머스 - Level1 - 예산

강주형·2022년 8월 10일
0

https://school.programmers.co.kr/learn/courses/30/lessons/12982

Summer/Winter Coding(~2018)

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

어렵지 않게 풀었다.


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

pop()은 맨 뒤 원소를 꺼내고 그 원소를 삭제한다.

예시

d = [1,2,3,4,5]
print(d.pop())
print(d)
5
[1, 2, 3, 4]

sort로 오름차순 정렬을 먼저 수행한 후 가장 큰 요소들을 제거하다가
d의 총합이 budget보다 작아지면 반복을 멈추고 d의 길이를 return 했음

내가 한 코드와 반대로 돌렸다고 생각하면 될 듯함..

profile
Statistics & Data Science

0개의 댓글