<aside> 💛
백준 14501번
</aside>
import java.util.Scanner;
public class Practice85 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[]D = new int[N + 2];
int[]T = new int[N + 1];
int[]P = new int[N + 1];
for(int i = 1; i <= N; i++) {
T[i] = sc.nextInt();
P[i] = sc.nextInt();
}
for(int i = N; i > 0; i--) {
if(i + T[i] > N + 1) {
D[i] = D[i + 1];
}else {
D[i] = Math.max(D[i + 1], P[i] + D[i + T[i]]);
}
}
System.out.println(D[1]);
sc.close();
}
}
MAX
함수는 두 개의 인자 값 중 더 큰 값을 반환합니다. 따라서 D[i]
는 D[i+1]
과 D[i + T[i]] + P[i]
중에서 더 큰 값이 됩니다.