-
[백준 14501 : 퇴사] Java백준 알고리즘 2019. 3. 1. 20:44
백준 14501번 퇴사 문제입니다.
schedule 메소드에서
1)day번째 날에 상담을 하는 경우와
2)하지 않고 다음 날짜로 바로 넘어가는
두 경우에 대해서 재귀 함수를 돌려서 답을 구합니다.
주의할 점은 퇴사하고 난 날짜에 상담 일정을 잡지 않는 것입니다.
일정을 잡기 전에 day+T[day]<=n이라는 조건을 걸어서 이런 실수를 방지할 수 있습니다!
package mnth3;import java.util.Scanner;public class bj14501 {static int N,max = Integer.MIN_VALUE;static int P[];static int T[];public static void main(String[] args) {// TODO Auto-generated method stubScanner scan = new Scanner(System.in);N = scan.nextInt();P = new int[N];T = new int[N];for(int i=0;i<N;i++) {T[i] = scan.nextInt();P[i] = scan.nextInt();}schedule(0,0);System.out.println(max);}static void schedule(int day, int money) {if(day>=N) {max = Math.max(max, money);return;}if(day+T[day]<=N)schedule(day+T[day],money+P[day]);schedule(day+1,money);}}'백준 알고리즘' 카테고리의 다른 글
[백준 10844 : 쉬운 계단 수] DP, Java (0) 2019.03.29 1149번 : RGB거리 [DP, JAVA] (0) 2019.03.27 [백준 14890 : 경사로] Java, 시뮬레이션 (0) 2019.01.31 [백준 2455 : 지능형기차] Java, 시뮬레이션 (0) 2019.01.06 [백준 2667 : 단지번호 붙이기] Java, DFS (0) 2018.11.14