알고리즘

[프로그래머스 lv 1] 예산.py

파뱁 2022. 1. 27. 23:41
728x90

<문제 설명>

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

 

코딩테스트 연습 - 예산

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

programmers.co.kr

부서가 신청한 예산이 배열로 나오고 총 쓸 수있는 예산이 주어진다.

이 예산 안에서 부서가 신청한 예산을 배분했을때, 최대한 많은 부서에 신청한 금액만큼 주는 게 이 문제의 목적이다.

 

입출력의 예는 다음과 같다.

d budget result
[1,3,2,5,4] 9 3
[2,2,3,3] 10 4

 

<문제 해결 아이디어>

부서별 예산안 리스트를 오름 차순 정렬한 후, 적은 예산의 부서(앞) 부터 계속 더해서 총 예산을 넘기기 직전 까지 반복한다. 이 때 까지 몇 번 더했는지를 카운트해서 반환해주면 된다.

 

<문제 풀이 코드>

def solution(d, budget):
    answer = 0
    d.sort();
    sumNum = 0
    for num in d:
        sumNum += num
        if sumNum <= budget:
            answer += 1
    
    return answer

채점 결과

 

728x90
반응형