[프로그래머스 Lv1] 예산 (파이썬)

Jewon Joel Park·2022년 7월 20일
0

Programmers-solution

목록 보기
23/34

문제 링크


문제 설명

최대한 많은 부서에 물품 지원을 하고자 할 때, 예산 범위 내에서 지원 가능한 부서의 수를 반환하는 함수 작성


풀이 코드

def solution(d, budget):
    d.sort()
    while budget < sum(d):
        d.pop()
    return len(d)

코드 설명

  1. 예산초과일 때 요청한 물품 금액이 큰 부서부터 제외할 경우 최대한 많은 부서에 지원하는 것이 가능하다는 아이디어에서 출발
  2. 부서별로 신청한 금액이 들어가 있는 배열 d가 주어지므로 오름차순 정렬
  3. d 원소의 합보다 예산(budget)이 작을 경우, d에서 큰 수부터 pop()을 반복
  4. while Loop이 종료된 시점(d 원소의 합이 예산(budget)보다 작을 경우)에서 전체 부서의 수(len(d))를 반환
profile
10년을 돌고 돌아 마침내 제자리를 찾은 문과 출신 Python 개발자의 인생기록장

0개의 댓글