본문 바로가기

Algorithm/BOJ

[BOJ] 1535 안녕

#include <iostream>
#define MAXL 20
#define MAXJ 100

using namespace std;
int DP[MAXL+1][MAXJ+1], L[MAXL+1], J[MAXJ+1];
int N;

void input() {
	cin >> N ;

	for (int i = 1; i <= N; i++)  
		cin >> L[i];  
	for (int i = 1; i <= N; i++)  
		cin >> J[i]; 



}
void solve() {

	for (int i = 1; i <= N; i++) {
		for (int j = 1; j < 100; j++) {
			if (j >= L[i])
				DP[i][j] = max(DP[i - 1][j - L[i]] + J[i], DP[i - 1][j]);
			else
				DP[i][j] = DP[i - 1][j];
		}
	}
	int res = 0;
	for (int i = 1; i < 100; i++)
		res = max(DP[N][i], res);
	cout << res << endl;

	//cout << DP[N][99] << endl;
}

int main() {

	input();
	solve();
}

가방 문제였다.

우선 초기화를 안해줘도 되는데 해준 부분이 가장 문제였다.

시작을 1부터로 해야 -1을 해줬을 때 문제가 없다.

정답

 

 

 

 

[백준 1535번] 안녕

https://www.acmicpc.net/problem/1535 1535번: 안녕 첫째 줄에 사람의 수 N(<=20)이 들어온다. 둘째 줄에는 각각의 사람에게 인사를 할 때, 잃는 체력이 1번 사람부터 순서대로 들어오고, 셋째 줄에는 각각의

deefer.tistory.com

 

 

 

가방 문제
가방 문제

 

 

 

 

 

 

[알고리즘] 배낭 문제(Knapsack Problem)

배낭 문제(Knapsack Problem) 배낭 문제란 배낭에 담을 수 있는 무게의 최대값이 정해져 있고, 일정한 가치와 무게가 정해져있는 짐들을 배낭에 닮을 때, 가치의 합이 최대가 되도록 짐을 고르는 방법

dheldh77.tistory.com

 

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 3933 라그랑주의 네 제곱수 정리  (0) 2021.06.15
[BOJ] 1058 친구  (0) 2021.06.10
[BOJ] 1261 알고스팟  (0) 2021.05.21
[BOJ] 1182 부분수열의 합  (0) 2021.05.15
[BOJ] 6603 로또  (0) 2021.05.15