Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- quadratic probing
- 힙성질
- 자바스크립트
- literal
- 자료구조
- 리액트
- 원시타입
- 함수표현
- 호이스팅
- 힙트리
- 해시테이블
- 원시값
- null병합 연산자
- 참조값
- heapify
- 백준
- 삽입
- 힙정의
- 분할정복
- 균형이진트리
- hash table
- 함수선언
- 참조타입
- 해시함수
- 리렌더링
- 얕은비교
- 리터럴
- 알고리즘
- 상수시간
- 옵셔널체이닝
Archives
- Today
- Total
천천히 하지만 더 멀리
평범한 배낭 [백준 알고리즘 12865] 본문
https://www.acmicpc.net/problem/12865
12865번: 평범한 배낭
첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000)
www.acmicpc.net
const input = ['4 7', '6 13', '4 8', '3 6', '5 12']
const [a, ...b] = input;
const [cases, weight] = a.split(' ').map(elem => Number(elem))
const weightValue = b.map(elem => elem.split(' ').map(elem => Number(elem)))
const counts = [];
for (let i = 0; i < cases+1; i++) {
counts.push(new Array(weight+1).fill(0))
}
for (let i = 1; i < cases+1; i++) {
const b_weight = weightValue[i-1][0];
const b_value = weightValue[i-1][1];
for (let j = 1; j < weight+1; j++) {
if (j < b_weight) {
counts[i][j] = counts[i-1][j]
} else {
const prev = counts[i-1][j];
const update = counts[i-1][j-b_weight] + b_value
counts[i][j] = Math.max(prev, update)
}
}
}
console.log(counts[cases][weight])'CS > 알고리즘' 카테고리의 다른 글
| 퀵 정렬 ( Quick Sort ) (0) | 2022.03.19 |
|---|---|
| Heap tree 만들기 ( make heap ) (0) | 2022.01.23 |
| 백준 2839 (0) | 2022.01.15 |
| 백준 2941 [ 자바스크립트 ] (0) | 2022.01.09 |
Comments