프로그래머스 LV1 - 예산
내 풀이
def solution(d, budget):
sum = 0
result = 0
d.sort()
for _ in range(len(d)):
if d:
sum += d.pop(0)
result += 1
if sum == budget:
break
if sum > budget:
result -= 1
break
return result
다른 풀이
def solution(d, budget):
d.sort() # 부서별 신청 금액을 오름차순으로 정렬
# 부서별 신청 금액과 인덱스를 순회
for idx, cost in enumerate(d):
# 예산에서 현재 부서의 신청 금액을 차감
budget -= cost
if budget < 0: # 예산이 부족하면
return idx # 이 때까지 지원한 부서의 개수(인덱스) 반환
# 모든 부서를 지원할 수 있는 경우 현재까지 지원한 부서의 개수가 전체 부서 개수와 동일
return len(d)
풀이 해석
d를 sort() 한 이후에 처음부터 빼나가면서 예산이 0 미만이 되면 idx를 도출한다. 싹다 지원이 가능하면 len(d) 도출
댓글남기기