공부 스토리/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))
    
    반응형
    • 네이버 블로그 공유
    • 네이버 밴드 공유
    • 페이스북 공유
    • 카카오스토리 공유