[프로그래머스 / 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분이나 소비하였다.