알고리즘 테스트/프로그래머스 문제풀이 및 해설
<프로그래머스 문제풀이: 예산> Level 1 - 파이썬
개발린이
2020. 11. 30. 10:58
간단한 문제인데 숏코딩을 할 수 없을까 생각하다가 빠르게 생각이 안 나서 그냥 다음과 같이 풀었다:
def solution(d, budget):
if min(d) > budget:
return 0
answer = 0
count = 0
for i in sorted(d):
if answer == budget:
return count
break
if answer > budget:
return count-1
break
answer += i
count += 1
return len(d)
문제의 요구 조건들을 그대로 옮겨 놨다. 하지만 다른 사람의 풀이를 보고는 그래도 조금의 숏코딩은 가능했었구나 싶었다:
다른 사람의 풀이
다음은 프로그래머스에서 가장 많은 좋아요를 받은 풀이이다:
def solution(d, budget):
d.sort()
while budget < sum(d):
d.pop()
return len(d)
나의 풀이처럼 더하는 것이 아닌 빼주는 방식으로 체크하여 확인을 하는 것도 하나의 방법이다.