출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기


간단한 문제인데 숏코딩을 할 수 없을까 생각하다가 빠르게 생각이 안 나서 그냥 다음과 같이 풀었다:

def solution(d, budget):
    if min(d) > budget:
        return 0
    answer = 0
    count = 0
    for i in sorted(d):
        if answer == budget:
            return count
            break
        if answer > budget:
            return count-1
            break
        answer += i
        count += 1
    return len(d)

문제의 요구 조건들을 그대로 옮겨 놨다. 하지만 다른 사람의 풀이를 보고는 그래도 조금의 숏코딩은 가능했었구나 싶었다:


다른 사람의 풀이

다음은 프로그래머스에서 가장 많은 좋아요를 받은 풀이이다:

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


나의 풀이처럼 더하는 것이 아닌 빼주는 방식으로 체크하여 확인을 하는 것도 하나의 방법이다.