https://www.acmicpc.net/problem/14501
14501번: 퇴사
첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.
www.acmicpc.net
알고리즘 분류
- 다이나믹 프로그래밍
풀이
public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int [] day = new int[n]; int [] money = new int[n]; StringTokenizer st ; int a, b; for (int i = 0; i < n; i++) { st = new StringTokenizer(br.readLine()); a = Integer.parseInt(st.nextToken()); b = Integer.parseInt(st.nextToken()); day[i] = a; money[i] = b; }// for int [] dp = new int[n+1]; for (int i = 0; i < n; i++) { // 날짜가 초과되지 않으면서 해당 날짜에 번돈을 계산 if (i + day[i] <= n){ dp[ i + day[i] ] = Math.max( dp[i + day[i]], dp[i] + money[i] ); } //if dp[i + 1] = Math.max( dp[i+1], dp[i] ); } // for System.out.println(dp[n]); } }
'BOJ, Programmers' 카테고리의 다른 글
[Java] 백준 1262 (알파벳 다이아몬드) 자바 문제 풀이 (0) | 2024.10.23 |
---|---|
[Java] 백준 1015 (수열 정렬) 자바 문제 풀이 (0) | 2024.09.28 |
[Java] 백준 2535 (아시아 정보올림피아드) 자바 문제 풀이 (1) | 2024.04.18 |
[Java] 백준 1527 (금민수의 개수) 자바 문제 풀이 (0) | 2024.04.15 |
[Java] 백준 2075 (N번째 큰 수) 자바 문제 풀이 (1) | 2024.04.15 |