백준 14728 java


import java.util.Arrays;
import java.util.Scanner;
public class bj14728 {
static Scanner scanner = new Scanner(System.in);
static int [][] testData;
static int T;
public static void main(String[] args) {
inputData();
System.out.println(findAnswer());
scanner.close();
}
public static void inputData(){
System.out.println("\ninputData()");
int i;
int N;
int K, S;
N = scanner.nextInt();
T = scanner.nextInt();
testData = new int[N + 1][2];
for(i = 1; i <= N; i++)
{
K = scanner.nextInt();
S = scanner.nextInt();
testData[i][0] = K;
testData[i][1] = S;
}
}
public static int findAnswer()
{
System.out.println("\nfindAnswer()");
int answer = 0;
int N = testData.length - 1;
int i, j;
int dp[][] = new int[N + 1][T + 1];
Arrays.fill(dp[0], 0);
for(i = 1; i <= N; i++)
{
for(j = 1; j <= T; j++)
{
if(testData[i][0] <= j)
{
dp[i][j] = Math.max(dp[i - 1][j], dp[i-1][j - testData[i][0]] + testData[i][1]);
}
else
{
dp[i][j] = dp[i - 1][j];
}
System.out.print(dp[i][j] + " ");
}
System.out.println();
}
answer = dp[N][T];
return answer;
}
}