문제
https://www.acmicpc.net/problem/14501
풀이
package com.js.pekah.algorithms;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class 퇴사 {
static int N;
static int T[];
static int P[];
static int result;
public static void dfs(int idx, int money) {
if (idx >= N) {
result = Math.max(result, money);
return;
}
if (idx + T[idx] > N) dfs(idx + T[idx], money);
else dfs(idx + T[idx], money + P[idx]);
dfs(idx+1, money);
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
N = Integer.parseInt(br.readLine());
T = new int[N];
P = new int[N];
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
T[i] = Integer.parseInt(st.nextToken());
P[i] = Integer.parseInt(st.nextToken());
}
dfs(0, 0);
System.out.println(result);
}
}
'코딩테스트 > 백준' 카테고리의 다른 글
[JAVA] 1260번 DFS와 BFS (0) | 2021.09.20 |
---|---|
[JAVA] 1012번 유기농 배추 (0) | 2021.09.19 |
[JAVA] 14888번 연산자 끼워넣기 (0) | 2021.08.29 |
[JAVA] 2468번 안전 영역 (0) | 2021.08.28 |
[JAVA] 2667번 단지 번호 붙이기 (0) | 2021.08.27 |
댓글