[백준 12865] 평범한 배낭 C++

🐥·2021년 5월 17일
0

백준

목록 보기
1/18


문제 이해하기

  • 배낭에 넣을 수 있는 무게로 최대 가치 만들기

소스코드

#include <stdio.h>
#include <iostream>
#include <algorithm>

using namespace std;

int w[110];  // 물건의 무게
int v[110];  // 물건의 가치
int value[110][100101];  
	
void backpack(int n, int k) {
    for (int i=1; i<=n; i++) {
    	for (int j=1; j<=k; j++) {
    		if (j >= w[i]) { value[i][j] = max(value[i-1][j], value[i-1][j-w[i]] + v[i]); }
		else { value[i][j] = value[i-1][j]; }
        }
    }
    cout << value[n][k];  // 최대 가치
}

int main() {
    int n, k;  // 물건의 개수와 가방의 무게
    cin >> n >> k;
    
    for (int i=1; i<=n; i++) { cin >> w[i] >> v[i]; }
    backpack(n, k);
    
    return 0;
}

문제를 풀던 도중에 런타임에러가 났다. 이유를 찾아보니 배열의 수를 너무 작게해서 에러가 난것이었다.;;
처음부터 수를 크게 가야겠다.

profile
열심히 공부하자!!

0개의 댓글

관련 채용 정보