공부 스토리/Programming / / 2020. 11. 6. 23:19

[프로그래머스 Summer/Winter Coding (~2018) 기출] - 예산

반응형

문제

부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요.

 

문제 링크: https://programmers.co.kr/learn/courses/30/lessons/12982
 

코딩테스트 연습 - 예산

S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는

programmers.co.kr


내 풀이

"""
d: 부서별로 신청한 금액이 들어있는 배열
budget: 예산

return: 최대 몇 개의 부서에 물품을 지원할 수 있는지
"""


def solution(d, budget):
    # 모든 부서에 물품을 지원할 수 있는 경우 d의 길이 바로 return
    if budget >= sum(d):
        return len(d)

    d.sort()        # d 오름차순 정렬
    answer = 0
    sum_d = 0

    for i in d:
        # 예산 초과할 경우 함수 종료
        if (sum_d + i) > budget:
            return answer
        sum_d += i      # 누적 금액 계산
        answer += 1     # 지원 가능한 부서 개수 카운트 


if __name__ == '__main__':

    d_input = list(map(int, input().split()))
    budget_input = int(input())

    print(solution(d_input, budget_input))
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유