사용 언어 - Python3
문제 - 예산
정답
런타임 에러 없이 구현 (정답 맞춘 여부 O)
# 런타임 에러
def solution(d, budget):
# 주어진 예산으로 최대한 많은 부서의 물품 구매
d.sort() # 주어진 예산
sum_b = 0 # 예산 합
for i in range(len(d)):
sum_b += d[i]
if sum_b <= budget:
answer = i+1
return answer
# 정답1
def solution(d, budget):
answer = 0
d.sort()
for i in range(len(d)):
if d[i] <= budget:
answer += 1
budget -= d[i] # 변수 만들지 말고, budget에서 빼주기
else:
break
return answer
# 정답2
def solution(d, budget):
d.sort()
while budget < sum(d): # sum(d)보다 작을때까지 d의 가장 큰 원소 삭제
d.pop()
return len(d) # d의 길이 = budget 안에서 가능한 부서 수
레퍼런스
- 정답 깃허브
'Algorithm > 구현' 카테고리의 다른 글
[프로그래머스 lv 1] 직사각형 별찍기 (0) | 2023.05.31 |
---|---|
[프로그래머스 lv 1] 소수 만들기 (0) | 2023.05.31 |
[프로그래머스 lv 1] [1차] 비밀 지도 (0) | 2023.05.30 |
[프로그래머스 lv 1] [1차] 다트 게임 (1) | 2023.05.30 |
[프로그래머스 lv 1] 신규 아이디 추천 (0) | 2023.05.29 |
댓글