Algorithm

[프로그래머스] Level1 | 예산 - 파이썬(Python) | Summer/Winter Coding(~2018)

토오오끼 2021. 11. 28. 23:19
728x90
반응형

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

 

코딩테스트 연습 - 예산

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

programmers.co.kr

 


 

처음에 문제를 보고 모든 경우의 수를 다 생각해야 하나 고민에 빠졌었다. 

곰곰히 생각해보니 그럴 필요 없이 for문 하나만으로도 해결을 할 수 있을 것 같았다.

 

정답 풀이

def solution(d, budget):
    answer = 0
    
    d = sorted(d)
    
    for i in range(len(d)) :
        if budget >= d[i] :
            budget -= d[i]
            answer += 1
    
    return answer

먼저 d를 오름차순으로 정렬을 하여 for문을 돌렸다. budget보다 d의 요소가 작으면 구매를 해 줄 수 있으니까 budget에서 d의 요소를 빼고 answer에 1을 더했다.

for문을 돌면서 budget은 계속 줄어들고 d의 요소와 순차적으로 비교를 할 수 있으므로 모든 경우의 수를 생각하지 않아도 되었다.

 


해당 문제 풀이 코드

 

GitHub - YOOHYOJEONG/algorithm_practice: 알고리즘 공부 및 코딩테스트 준비

알고리즘 공부 및 코딩테스트 준비. Contribute to YOOHYOJEONG/algorithm_practice development by creating an account on GitHub.

github.com

 

728x90
반응형