From e6ed9d60c4281d76cbe407a5d90a4bd166134bb1 Mon Sep 17 00:00:00 2001 From: lkhyun <102892446+lkhyun@users.noreply.github.com> Date: Wed, 3 Sep 2025 16:15:43 +0900 Subject: [PATCH] =?UTF-8?q?[20250903]=20BOJ=20/=20G5=20/=20=ED=87=B4?= =?UTF-8?q?=EC=82=AC=202=20/=20=EC=9D=B4=EA=B0=95=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../03 BOJ G5 \355\207\264\354\202\254 2.md" | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 "lkhyun/202509/03 BOJ G5 \355\207\264\354\202\254 2.md" diff --git "a/lkhyun/202509/03 BOJ G5 \355\207\264\354\202\254 2.md" "b/lkhyun/202509/03 BOJ G5 \355\207\264\354\202\254 2.md" new file mode 100644 index 00000000..8ed8fc6f --- /dev/null +++ "b/lkhyun/202509/03 BOJ G5 \355\207\264\354\202\254 2.md" @@ -0,0 +1,44 @@ +```java +import java.util.*; +import java.io.*; + +public class Main{ + static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + static StringTokenizer st; + static int N; + static int[] time; + static int[] reward; + static int[] dp; + + public static void main(String[] args) throws Exception { + N = Integer.parseInt(br.readLine()); + time = new int[N+1]; + reward = new int[N+1]; + dp = new int[N+2]; + + for (int i = 1; i <= N; i++) { + st = new StringTokenizer(br.readLine()); + int t = Integer.parseInt(st.nextToken()); + int r = Integer.parseInt(st.nextToken()); + time[i] = t; + reward[i] = r; + } + + int ans = 0; + for (int i = 1; i <= N; i++) { + dp[i] = Math.max(dp[i],dp[i-1]); + int cur = i+time[i]; + if(cur<=N+1){ + dp[cur] = Math.max(dp[cur],dp[i] + reward[i]); + } + + } + for (int i = 1; i <= N+1; i++) { + ans = Math.max(ans,dp[i]); + } + bw.write(ans+""); + bw.close(); + } +} +```