🧠𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/💙프로그래머스

[Summer/Winter Coding(~2018)/Level1👶🏻] 예산

안오늘 2021. 7. 6. 07:31

1. 문제설명

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

2. 나의 풀이

from itertools import combinations
def solution(d, budget):
    answer = 0
    combi = []
    for i in range(1, len(d)+1):
        combi += combinations(d, i)
        
    for c in combi:
        if sum(c) <= budget:
            answer = len(c)
        
    return answer

조합을 구한뒤 한번에 sum과 len 내장함수를 이용해 하려고 했다.

테스트케이스는 충족하였으나 몇개는 통과하고 몇개는 시간초과가 떴다.

 

3. 다른 사람의 풀이

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

이렇게 먼저 정렬을 하고, 예산에서 빼면서 하면 더 간단했다.