티스토리 뷰
냅색 알고리즘이란?
배낭 문제는 조합 최적화의 유명한 문제이다. 간단하게 말하면, 한 여행가가 가지고 가는 배낭에 담을 수 있는 무게의 최댓값이 정해져 있고, 일정 가치와 무게가 있는 짐들을 배낭에 넣을 때, 가치의 합이 최대가 되도록 짐을 고르는 방법을 찾는 문제이다.
문제
다음과 같이 여러 단위의 동전들이 주어져 있을때 거스름돈을 가장 적은 수의 동전으로 교환 해주려면 어떻게 주면 되는가? 각 단위의 동전은 무한정 쓸 수 있다.
풀이
function solution(m, coin) {
let answer = 0;
let dy = Array.from({ length: m + 1 }, () => 1000);
dy[0] = 0;
for (let i = 1; i < coin.length; i++) {
for (let j = coin[i]; j <= m; j++) {
dy[j] = Math.min(dy[j], dy[j - coin[i]] + 1);
}
}
answer = dy[m];
return answer;
}
let arr = [1, 2, 5];
console.log(solution(11, arr));
'알고리즘 > 코딩테스트 공부' 카테고리의 다른 글
Javascript 순열, 조합 알고리즘 구현하기 (0) | 2023.11.02 |
---|---|
10-5. 최대 점수 구하기(냅색 알고리즘) (0) | 2022.03.26 |
10-2. 돌다리 건너기 (0) | 2022.03.26 |
10-1. 계단 오르기 (동적 계획법) (0) | 2022.03.26 |
9-7. 섬나라 아일랜드(DFS 활용)와 (BFS : 넓이 우선 탐색) 문제 풀이 (0) | 2022.03.26 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- import/order
- WSL2
- 프리온보딩
- TopLayer
- 위코드
- React
- error
- Storybook
- electron
- 초보
- 노개북
- javascript
- NextApiRequest
- 스토리 북
- 북클럽
- nodejs
- createPortal
- C언어
- 우아한테크코스
- nextjs
- NextRequest
- env
- 윤성우 열혈C프로그래밍
- 노마드코더
- 아차산
- 프론트앤드
- 원티드
- CLASS
- jest
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함