생각보다 쉬웠는데!! 반복문에서 j를 변수로 써놓고 i++를 하고 있었다..ㅎ
이런 경우에 j말고 i랑 다른 k나 p같은 변수로 둬야겠다!
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int[] price;
static int[] dp;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(br.readLine());
price = new int[n + 1];
dp = new int[n + 1];
st = new StringTokenizer(br.readLine());
for (int i = 1; i <= n; i++) {
price[i] = Integer.parseInt(st.nextToken());
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
dp[i] = Math.max(dp[i], dp[i - j] + price[j]);
}
}
System.out.println(dp[n]);
}
}