728x90
<문제 설명>
https://programmers.co.kr/learn/courses/30/lessons/12982
부서가 신청한 예산이 배열로 나오고 총 쓸 수있는 예산이 주어진다.
이 예산 안에서 부서가 신청한 예산을 배분했을때, 최대한 많은 부서에 신청한 금액만큼 주는 게 이 문제의 목적이다.
입출력의 예는 다음과 같다.
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
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스 lv 1] 2016년.py (0) | 2022.02.02 |
---|---|
[프로그래머스 lv 1] 시저암호.py (0) | 2022.01.31 |
[프로그래머스 lv 1] 정수 내림차순으로 배치하기.py (0) | 2022.01.26 |
[프로그래머스 lv 1] 문자열 다루기 기본.py (0) | 2022.01.24 |
[프로그래머스 lv 1] x만큼 간격이 있는 n개의 숫자.py (0) | 2022.01.20 |