본문 바로가기

알고리즘 & 코딩테스트/코딩테스트

Programmers Lv.1 "예산"

Programmers Lv.1 예산, Summer/Winter Coding(~2018), 정답률 74%

문제가 굉장히 길지만 사실 가만히 살펴보면 각 팀별 신청한 예산목록 리스트인 d와 주어진 예산인 budget을 두고 budget의 범위안에서 얼마나 많은 팀의 신청 예산 누적합이 포함될 수 있는지 따져보면 된다. 필자는 계산을 순차적으로 편하게 하기위해 정렬시키고, 순차적으로 누적합을 구하면서 budget보다 커질 경우 반복을 끝내면 된다.

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