import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int ans = 0;
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(br.readLine());
int[] time = new int[n];
int[] money = new int[n];
for(int i=0; i<n; i++){
st = new StringTokenizer(br.readLine());
time[i] = Integer.parseInt(st.nextToken());
money[i] = Integer.parseInt(st.nextToken());
}
func(time, money, 0, 0);
System.out.println(ans);
}
private static void func(int[] time, int[] money, int day, int sum){
if(day >= time.length){
ans = Math.max(ans, sum);
return;
}
if(day+time[day] <= time.length)
func(time, money, day+time[day], sum+money[day]); //n일차에 상담하는 경우
func(time, money, day+1, sum); //n일차에 상담안하는 경우
}
}
입력받은 기간을 하루하루 체크하며 그날 상담을 할 수 있는지 모든 경우를 확인한다.
n일차에 상담을 할건지/안할건지의 두 가지 경우를 함수로 돌리면 모든 경우를 확인할 수 있다.
'1d-1c > BOJ' 카테고리의 다른 글
13023_ABCDE (JAVA) (0) | 2020.12.03 |
---|---|
14888_연산자 끼워넣기 (JAVA) (0) | 2020.11.29 |
6603_로또 (JAVA) (0) | 2020.11.28 |
11723_집합 (JAVA) (0) | 2020.11.25 |
10972_다음 순열 & 10973_이전 순열 (JAVA) (0) | 2020.11.24 |