[BOJ][Java] 15486. ํ‡ด์‚ฌ 2

2025. 9. 15. 16:56ยท๐Ÿ’ญ Problem Solving/Java

๋ฌธ์ œ

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

 

๋ฌธ์ œ ์ดํ•ด

  • N์ผ ๋™์•ˆ ๊ฐ€๋Šฅํ•œ ์ƒ๋‹ด ์ผ์ •์ด ์ฃผ์–ด์ง„๋‹ค.
    • ์ƒ๋‹ด์˜ ๊ธฐ๊ฐ„, ์ˆ˜์ต
  • N + 1์ผ์งธ ๋˜๋Š” ๋‚  ํ‡ด์‚ฌํ•˜๊ธฐ ์œ„ํ•ด, ํ‡ด์‚ฌ ์ „(N์ผ ๋‚ด)์— ๋๋‚˜๋Š” ์ƒ๋‹ด๋“ค์„ ์„ ํƒํ•ด ์ตœ๋Œ€ ์ˆ˜์ต์„ ๊ตฌํ•œ๋‹ค.
  • ํ•˜๋ฃจ์— ํ•˜๋‚˜์˜ ์ƒ๋‹ด๋งŒ ํ•  ์ˆ˜ ์žˆ์–ด์„œ, ์ƒ๋‹ด์„ ์‹œ์ž‘ํ•˜๋ฉด ํ•ด๋‹น ์ƒ๋‹ด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋‹ค๋ฅธ ์ƒ๋‹ด์€ ํ•  ์ˆ˜ ์—†๋‹ค.
  • ๋๋‚˜๋Š” ๋‚ ์ด N์ผ์„ ๋„˜์–ด๊ฐ€๋ฉด ๊ทธ ์ƒ๋‹ด์€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค.

 

DP ๊ตฌํ˜„

  • dp[i]: i์ผ๊นŒ์ง€์˜ ์ตœ๋Œ€ ์ด์ต
  1. ์ „๋‚  ์ด์ต ์ €์žฅ
     dp[i] = max(dp[i], dp[i-1])
  2. i์ผ์— ์ƒ๋‹ด์„ ์‹œ์ž‘
    • ๋๋‚˜๋Š” ๋‚ : end = i + consults[i].t - 1
    • ํ‡ด์‚ฌ ์ „์— ๋๋‚˜๋Š” ์ƒ๋‹ด๋งŒ ์œ ํšจ: end <= n
    • i - 1์ผ๊นŒ์ง€์˜ ์ตœ๋Œ€ ์ˆ˜์ต์— ์ด๋ฒˆ ์ƒ๋‹ด์˜ ์ˆ˜์ต์„ ๋”ํ•ด์„œ ์ตœ๋Œ“๊ฐ’ ๋ฐ˜์˜
      dp[end] = max(dp[end], dp[i - 1] + consults[i].p)
  • ์ตœ์ข… ์ˆ˜์ต: dp[n]

์ฝ”๋“œ

import java.util.*;
import java.io.*;

public class Main {
	static class Consult {
		int t, p;

		public Consult(int t, int p) {
			this.t = t;
			this.p = p;
		}
	}

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int n = Integer.parseInt(br.readLine());
		Consult[] consults = new Consult[n + 1];

		for (int i = 1; i <= n; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			consults[i] = new Consult(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()));
		} // ์ž…๋ ฅ ๋

		int[] dp = new int[n + 1]; // idx์ผ๊นŒ์ง€์˜ ์ตœ๋Œ€ ์ˆ˜์ต

		for (int i = 1; i <= n; i++) {
			dp[i] = Math.max(dp[i], dp[i - 1]);

			int end = i + consults[i].t - 1; // ๋๋‚˜๋Š” ๋‚ 
			if (end <= n)
				dp[end] = Math.max(dp[end], dp[i - 1] + consults[i].p);
		}

		System.out.println(dp[n]);
	}
}

'๐Ÿ’ญ Problem Solving > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ][Java] 16236. ์•„๊ธฐ ์ƒ์–ด  (0) 2025.10.01
[BOJ][Java] 2533. ์‚ฌํšŒ๋ง ์„œ๋น„์Šค(SNS)  (0) 2025.09.24
[BOJ][Java] 16930. ๋‹ฌ๋ฆฌ๊ธฐ  (4) 2025.09.09
[BOJ][Java] 14503. ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ  (0) 2025.09.03
[SWEA][Java] 3421. ์ˆ˜์ œ ๋ฒ„๊ฑฐ ์žฅ์ธ  (4) 2025.08.29
'๐Ÿ’ญ Problem Solving/Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [BOJ][Java] 16236. ์•„๊ธฐ ์ƒ์–ด
  • [BOJ][Java] 2533. ์‚ฌํšŒ๋ง ์„œ๋น„์Šค(SNS)
  • [BOJ][Java] 16930. ๋‹ฌ๋ฆฌ๊ธฐ
  • [BOJ][Java] 14503. ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ
0=2.
0=2.
  • 0=2.
    0=2
    0=2.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿ“‚ Project (2)
        • Paint the City (2)
      • ๐Ÿ’ญ Problem Solving (42)
        • C++ (28)
        • Java (14)
      • ๐Ÿ“ Study (17)
        • React (1)
        • Java (16)
      • ๐Ÿ’ป CS (11)
        • ๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ (2)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (9)
      • ๐Ÿƒ‍โ™€๏ธ Activities (32)
        • Web Front-End Basic Study (6)
        • 42 Cursus (26)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๊ตฌํ˜„
    dynamic programming
    BFS
    react
    ์‹œ๋ฎฌ๋ ˆ์ด์…˜
    ํŠธ๋ฆฌ
    ๋ฐฑ์ค€
    swea
    CSS
    ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ
    github
    unity
    C
    CS
    HTML
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    dfs
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๋ฐฑํŠธ๋ž˜ํ‚น
    java
    VR
    git
    knapsack
    La Piscine
    .h
    ๋งต
    makefile
    ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜
    42๊ฒฝ์‚ฐ
    ์ •๋ ฌ
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
0=2.
[BOJ][Java] 15486. ํ‡ด์‚ฌ 2
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”