[프로그래머스 / lv.1] 예산
in Problem Solving on Programers
날짜: 2021년 6월 7일
소요 시간: 6분 11초
카테고리: 수학문제
태그: 레벨1, 파이썬
입출력 예시
| d | budget | result |
|---|---|---|
| [1,3,2,5,4] | 9 | 3 |
| [2,2,3,3] | 10 | 4 |
내가 적은 코드
def solution(d, budget):
d.sort()
count = 0
bud = 0
for i in d:
bud += i
if bud > budget:
break
count += 1
return count
풀이 과정
신청한 부서 d를 내림차순으로 정렬하여 하나하나씩 더해 주어 bud에 저장 한 후
저장 한 부서만큼 count에 +1씩 해준다.
bud가 예산을 나타내는 파라미터인 budget보다 커지게 될 경우 반복을 멈추고 count를 리턴한다.
베스트 코드
def solution(d, budget):
d.sort()
while budget < sum(d):
d.pop()
return len(d)
신청한 부서 d가 많고 예산 budget이 적으면 리스트 뒤에서 부터 pop하며 읽어내려가기 때문에 비효율적인 코드가 될 수도 있다.
반성
- 어렵게 생각할 필요가 없던 문제인데 6분이나 소비하였다.
