알고리즘_코딩테스트/프로그래머스_Level1
36. 예산
논곰
2020. 9. 12. 23:13
0. 문제
링크) https://programmers.co.kr/learn/courses/30/lessons/12982
코딩테스트 연습 - 예산
S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 ��
programmers.co.kr
1. 알고리즘 계획
- 개수를 저장할 변수(count)를 하나 생성한다.
- for문을 돌면서, 예산에서 해당되는 부서를 찾으면 예산에서 값을 빼고, count를 증가시킨다.
- '부서의 필요한 금액 리스트'를 돌 때 값을 정렬시켜주면 코드를 효율적으로 돌 수 있다.
2. 나의 코드
def solution(d, budget):
count = 0
for i in sorted(d):
if budget - i >= 0:
budget -= i
count += 1
return count
- 처음에 '정렬'을 하지 않고 코드를 작성해 잠깐의 오류가 있었다.
3. 다른 사람의 코드
def solution(d, budget):
d.sort()
while budget < sum(d):
d.pop()
return len(d)
- 재밌게 풀었다고 생각한다.
- while문을 돌며 d의 값을 하나씩 빼면서, d의 합을 budget과 비교 한다.
- 이 경우에서 sum(d)의 값이 budget값보다 낮아진다는 뜻 == 예산으로 d의 모든 값들을 해결할 수 있다가 된다.
4. 정리 및 리뷰
- 뭔가 내 코드가 교과서적으로 풀었다는 느낌이었다면, 다른 사람의 코드는 자료형의 특성과 함수에 대해서 잘 이해하고, 사용해본 것 같다는 느낌을 받았다.
코드 만족도: ★★★★☆