From 956f94f4e6bda7822dfd2fec72dddf7b38e7628c Mon Sep 17 00:00:00 2001 From: sukangpunch Date: Mon, 19 Jan 2026 20:14:50 +0900 Subject: [PATCH] =?UTF-8?q?[Week02]=20BOJ:=20=ED=87=B4=EC=82=AC2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sukangpunch.java" | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 "weekly/week02/BOJ_15486_\355\207\264\354\202\2542/sukangpunch.java" diff --git "a/weekly/week02/BOJ_15486_\355\207\264\354\202\2542/sukangpunch.java" "b/weekly/week02/BOJ_15486_\355\207\264\354\202\2542/sukangpunch.java" new file mode 100644 index 0000000..014abd6 --- /dev/null +++ "b/weekly/week02/BOJ_15486_\355\207\264\354\202\2542/sukangpunch.java" @@ -0,0 +1,39 @@ +package stduy.week02; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +// 퇴사 2 +// 답 확인 +public class BOJ_15486 { + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + int N = Integer.parseInt(br.readLine()); + int[] T = new int[N + 1]; + int[] P = new int[N + 1]; + + for(int i = 1; i <= N; i++){ + String[] s = br.readLine().split(" "); + T[i] = Integer.parseInt(s[0]); + P[i] = Integer.parseInt(s[1]); + } + + int[] dp = new int[N + 2]; // N+1일에 끝나는 상담을 위해 N+2 크기 + + for(int i = 1; i <= N; i++){ + // i 일에 상담을 하지 않으면, i일의 수익이 i+1 에도 그대로 유지 + dp[i + 1] = Math.max(dp[i + 1], dp[i]); + + // i일에 상담을 하는 경우 + int endDay = i + T[i]; + if(endDay <= N + 1){ + dp[endDay] = Math.max(dp[endDay], dp[i] + P[i]); // 수익이 발생하는 날에 바로 P값을 적용한 결과 저장 + } + } + + System.out.println(dp[N + 1]); + } +}