ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ

์ด๋ฒˆ ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ๋Œ€ํšŒ์—์„œ ์ข‹์€ ์„ฑ์ ์„ ๋‚ด๊ธฐ ์œ„ํ•˜์—ฌ ํ˜„์ˆ˜๋Š” ์„ ์ƒ๋‹˜์ด ์ฃผ์‹  N๊ฐœ์˜ ๋ฌธ์ œ๋ฅผ ํ’€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.๊ฐ ๋ฌธ์ œ๋Š” ๊ทธ๊ฒƒ์„ ํ’€์—ˆ์„ ๋•Œ ์–ป๋Š” ์ ์ˆ˜์™€ ํ‘ธ๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ์ฃผ์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ œํ•œ์‹œ๊ฐ„ M์•ˆ์— N๊ฐœ์˜ ๋ฌธ์ œ ์ค‘ ์ตœ๋Œ€์ ์ˆ˜๋ฅผ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.(ํ•ด๋‹น ๋ฌธ์ œ๋Š” ํ•ด๋‹น์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋ฉด ํ‘ธ๋Š” ๊ฑธ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค, ํ•œ ์œ ํ˜•๋‹น ํ•œ๊ฐœ๋งŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค)


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

ํ•ด๋‹น ๋ฌธ์ œ์™€ ๋ฐฑ์ค€ 12865๋ฒˆ ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ ๋ฌธ์ œ๋Š” ๋™์ผํ•œ ๋ฌธ์ œ ํ’€์ด๋กœ ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์ด ํฌ์ŠคํŒ…ํ•ด๋‘”๋‹ค.

 

๋ฌธ์ œํ’€์ด

https://choi95.tistory.com/137

 

[๋ƒ…์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜]๋™์ „๊ตํ™˜

๋ฌธ์ œ https://choi95.tistory.com/119?category=854389 [DFS-Cut Edge]๋™์ „๊ตํ™˜ ๋ฌธ์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๋‹จ์œ„์˜ ๋™์ „๋“ค์ด ์ฃผ์–ด์ ธ ์žˆ์„๋•Œ ๊ฑฐ์Šค๋ฆ„๋ˆ์„ ๊ฐ€์žฅ ์ ์€ ์ˆ˜์˜ ๋™์ „์œผ๋กœ ๊ตํ™˜ํ•ด์ฃผ๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ์ฃผ๋ฉด ๋˜๋Š”๊ฐ€?๊ฐ..

choi95.tistory.com

์ „์ฒด์ ์ธ ๋ฌธ์ œ ํ’€์ด๋Š” ์ด์ „ ํฌ์ŠคํŒ…์˜ ๋™์ „๊ตํ™˜ ๋ฌธ์ œ์™€ ์œ ์‚ฌํ•˜๋‹ค.

ํ•˜์ง€๋งŒ ์ตœ๋Œ€ ์ ์ˆ˜์™€ ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ ๋ฌธ์ œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ฐจ์ด์ ์ด ์žˆ๋‹ค.

  • ๋™์ „๊ตํ™˜ ๋ฌธ์ œ๋Š” ์‚ฌ์šฉ๋˜๋Š” ๋™์ „์ข…๋ฅ˜๊ฐ€ ์ค‘๋ณต๋˜์–ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅ
  • ์ตœ๋Œ€ ์ ์ˆ˜์™€ ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ ๋ฌธ์ œ๋Š” ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ํ’€๊ฑฐ๋‚˜ ๊ฐ™์€ ๋ฌผ๊ฑด์„ ๋‹ด์„ ์ˆ˜ ์—†์Œ

๊ฐ limit์— ๋Œ€์‘ํ•ด ์ด๋ค„์งˆ ์ˆ˜ ์žˆ๋Š” value๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๋™์ „๊ตํ™˜ ๋ฌธ์ œ์™€ ๊ฐ™์ด ์•ž์—์„œ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋ฉฐ ์ ํ™”์‹์„ ํ†ตํ•ด ๊ณ„์‚ฐํ•˜๊ฒŒ ๋˜๋ฉด ๋™์ผํ•œ

๋ฌธ์ œ๋ฅผ ๊ณ„์† ํ’€๊ฒŒ๋˜๊ฑฐ๋‚˜ ๊ฐ™์€ ๋ฌผ๊ฑด์„ ๊ณ„์† ๋‹ด๊ฒŒ ๋˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์—์„œ๋ถ€ํ„ฐ ์—ญ์ˆœ์œผ๋กœ ์ˆœํšŒ๊ฐ€ ์ด๋ค„์ ธ์•ผ ๋œ๋‹ค.

 

์ฝ”๋“œ_์ตœ๋Œ€ ์ ์ˆ˜ ๊ตฌํ•˜๊ธฐ

function solution(m, arr) {
  let answer = 0;
  let dy = Array.from({length: m + 1}, () => 0);
  
  for(let i = 0; i < arr.length; i++) {
    let ps = arr[i][0];
    let pt = arr[i][1];
    for(let j = m; j >= pt; j--)  {
      dy[j] = Math.max(dy[j], dy[j - pt] + ps);
    }
  }
  answer = dy[m];
  return answer;
}

let arr = [[10, 5], [25, 12], [15, 8], [6, 3], [7, 4]];
console.log(solution(20, arr));

 

์ฝ”๋“œ_ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ

function solution(m, arr) {
  let answer = 0;
  let dy = Array.from({length: m + 1}, () => 0);
  
  for(let i = 0; i < arr.length; i++) {
    let weight = arr[i][0];
    let value = arr[i][1];
    for(let j = m; j >= weight; j--)  {
      dy[j] = Math.max(dy[j], dy[j - weight] + value);
    }
  }
  answer = dy[m];
  return answer;
}

let arr = [[6, 13], [4, 8], [3, 6], [5, 12]];
console.log(solution(7, arr));
๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ