본문 바로가기
코딩테스트/백준

[JAVA] 14501번 퇴사

by PEKAH 2021. 8. 30.

문제

https://www.acmicpc.net/problem/14501

 

14501번: 퇴사

첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.

www.acmicpc.net

풀이

 

 

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

댓글