[๋ฐฑ์ค€] 12865 ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ

2024. 9. 1. 01:33ยท๐Ÿ’ป Algorithms/๋ฐฑ์ค€

[ ๋ฌธ์ œ๋งํฌ ]

https://www.acmicpc.net/problem/12865

 

๐Ÿšฉ ์กฐ๊ฑด

  1. ์ฒซ ์ค„์— ๋ฌผํ’ˆ์˜ ์ˆ˜ N(1 ≤ N ≤ 100)๊ณผ ์ค€์„œ๊ฐ€ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋Š” ๋ฌด๊ฒŒ K(1 ≤ K ≤ 100,000)๊ฐ€ ์ฃผ์–ด์ง
  2. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑฐ์ณ ๊ฐ ๋ฌผ๊ฑด์˜ ๋ฌด๊ฒŒ W(1 ≤ W ≤ 100,000)์™€ ํ•ด๋‹น ๋ฌผ๊ฑด์˜ ๊ฐ€์น˜ V(0 ≤ V ≤ 1,000)๊ฐ€ ์ฃผ์–ด์ง
  3. ๋ฐฐ๋‚ญ์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ฌผ๊ฑด๋“ค์˜ ๊ฐ€์น˜ํ•ฉ์˜ ์ตœ๋Œ“๊ฐ’์„ ์ถœ๋ ฅํ•ด๋ผ

 

 

๐Ÿšฉ ์ ‘๊ทผ

0/1 Knapsack ๋ฌธ์ œ.. ์–ด๋–ป๊ฒŒ ํ‘ธ๋Š” ๊ฑฐ์˜€๋”๋ผ...

 

 

๐Ÿšฉ ์‹œํ–‰์ฐฉ์˜ค

์ฒ˜์Œ์—” Branch and Bound๋กœ ์‹œ๋„ํ•ด๋ณด๋ ค ํ•˜๋‹ค๊ฐ€ ๊ทธ๋ž˜ํ”„๋ฅผ ์–ด๋–ป๊ฒŒ ์ •์˜ํ•ด์•ผ ํ• ์ง€ ๊ฐ์ด ์•ˆ์™€์„œ.. ํฌ๊ธฐ

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹œ๊ฐ„์— ๋ฐฐ์šด ๊ธฐ์–ต์œผ๋กœ๋Š” DP๋กœ ํ‘ธ๋Š” ๊ฒŒ ์ตœ์•…์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ Brute Force์™€ ๊ฐ™์•„์ง„๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ.. => ์ด๊ฑด N์ด ์—„์ฒญ๋‚˜๊ฒŒ ์ปค์กŒ์„ ๋•Œ! ๊ทธ๋ž˜์„œ Backtracking๊ณผ Branch & Bound ๋ผ๋Š” ์ƒˆ๋กœ์šด ์ ‘๊ทผ๋ฒ•์ด ๋Œ€๋‘๋จ

 

์–ด์จŒ๋“  ์ด ๋ฌธ์ œ๋Š” DP๋กœ ํ’€๋ฉด ๋œ๋‹ค!

 

 

๐Ÿ’ป ์ฝ”๋“œ (C++)

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int D[101][100001];    // 1-indexed
vector<int> wv;    // 0-indexed
vector<int> vv;    // 0-indexed
int main(){
    int n, k, w, v;
    cin>>n>>k;
    for(int i=0;i<n;i++){
        cin>>w>>v;
        wv.push_back(w);
        vv.push_back(v);
    }
    
    for(int i=1;i<=n;i++){
        for(int j=1;j<=k;j++){
            if(j-wv[i-1] < 0)
                D[i][j]=D[i-1][j];
            else
                D[i][j]=max(D[i-1][j], D[i-1][j-wv[i-1]]+vv[i-1]);
        }
    }
    cout<<D[n][k];
}

'๐Ÿ’ป Algorithms > ๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 1676 ํŒฉํ† ๋ฆฌ์–ผ 0์˜ ๊ฐœ์ˆ˜ - ์ˆ˜ํ•™, ์ •์ˆ˜๋ก   (1) 2024.09.16
[๋ฐฑ์ค€] 1929 ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ - ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด  (0) 2024.09.15
[๋ฐฑ์ค€] 10844 ์‰ฌ์šด ๊ณ„๋‹จ ์ˆ˜ - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ  (0) 2024.09.01
[๋ฐฑ์ค€] 11727 2xn ํƒ€์ผ๋ง2 - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ  (0) 2024.08.31
[๋ฐฑ์ค€] 1932 ์ •์ˆ˜ ์‚ผ๊ฐํ˜• - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ  (0) 2024.08.31
'๐Ÿ’ป Algorithms/๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 1676 ํŒฉํ† ๋ฆฌ์–ผ 0์˜ ๊ฐœ์ˆ˜ - ์ˆ˜ํ•™, ์ •์ˆ˜๋ก 
  • [๋ฐฑ์ค€] 1929 ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ - ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด
  • [๋ฐฑ์ค€] 10844 ์‰ฌ์šด ๊ณ„๋‹จ ์ˆ˜ - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • [๋ฐฑ์ค€] 11727 2xn ํƒ€์ผ๋ง2 - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
์ ๋„
์ ๋„
  • ์ ๋„
    ๋„์ 
    ์ ๋„
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (30)
      • ๐Ÿ’ป Algorithms (28)
        • ๋ฐฑ์ค€ (22)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (6)
      • ๐Ÿ”Ž Deep Learning (0)
      • ๐Ÿ’ฅ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… (1)
      • ๐Ÿ•น Unity (1)
      • ๐Ÿฅ” ์ž‰ํ…… (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • Blog
    • Github
    • Velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
์ ๋„
[๋ฐฑ์ค€] 12865 ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ - ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”