[프로그래머스] Lv.1 예산 (Python)

seulzzang·2022년 9월 22일
0

코딩테스트 연습

목록 보기
16/44
post-thumbnail

📍예산

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

📍풀이

  • 최대한 많은 부서를 지원해줘야한다는 뜻은 적은 예산을 가진 팀들을 먼저 지원해주면 된다와 같다고 생각해서 d를 오름차순으로 정렬한 뒤 budget에서 빼주는 식으로 코드를 짰다.
  • 그래서 budget이 음수가 되면 빠져나오면 끝

💻나의 코드

def solution(d, budget):
    answer = 0
    d.sort()
    for i in d:
        budget -= i
        if budget < 0:
            break
        answer += 1
    return answer

📍다른사람 풀이

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

정렬을 하고 신청한 지원금의 합이 예산보다 작아질 때 까지 마지막 원소를 pop해주는 방식
그러고 남은 d의 개수를 구해주면 지원받는 부서니까 len(d)를 리턴.. 신박하다

profile
중요한 것은 꺾이지 않는 마음

0개의 댓글