728x90
프로그래머스, 예산
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
6개월전? 나의 풀이
def solution(d, budget):
d.sort()
for i in range(1, len(d)+1):
if(d[0] > budget):
return 0
if(sum(d[:i]) > budget):
break
else:
answer = i
return answer
왜 이렇게 풀었는지.. 생각 안나지만, 오늘 푼 풀이와 별반 다르지 않다.
다시 풀어보니, 이 문제는 그리디 문제였다.
6개월 전에는 그리디 개념도 몰랐던 나.
예산이 적은 부서부터 지급해야 최대한 많은 부서들을 지원할 수 있기 때문이다.
나의 풀이
d = [2,2,3,3]
budget = 10
def solution(d, budget):
# 정렬
d.sort()
result = 0
hap = 0
for e in d:
hap += e
if budget >= hap:
result += 1
return result
print(solution(d, budget))
예산이 적은 부서부터 지원하기 위해 정렬 시켰다.
그리고 result를 0으로 초기화했다.
부서 예산을 더해준 뒤, 총 예산안에 들면 result를 하나씩 올려줬다.
'알고리즘' 카테고리의 다른 글
백준 2447번 별찍기 - 10 (0) | 2023.07.31 |
---|---|
백준 2869 달팽이는 올라가고 싶다 (0) | 2023.07.17 |
백준 8983 사냥꾼 (0) | 2023.07.12 |
[Hash Table] 백준 10816 숫자 카드 2 (0) | 2023.06.11 |
백준 2470 두 용액 (0) | 2023.06.01 |