๊ธฐ๋ก๋ฐฉ

BOJ_14501 : ํ‡ด์‚ฌ ๋ณธ๋ฌธ

CodingTest/Java

BOJ_14501 : ํ‡ด์‚ฌ

Soom_1n 2022. 12. 17. 09:38

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

14501๋ฒˆ: ํ‡ด์‚ฌ

์ฒซ์งธ ์ค„์— ๋ฐฑ์ค€์ด๊ฐ€ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ด์ต์„ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • N์ผ๋™์•ˆ ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
    • N๊ฐœ์˜ ์—…๋ฌด์˜ ์ฒ˜๋ฆฌ์— ํ•„์š”ํ•œ ์‹œ๊ฐ„ t์™€ ๋ฐ›๋Š” ๊ธˆ์•ก p๊ฐ€ ์žˆ๋‹ค.
    • ์ฒ˜๋ฆฌ์— ํ•„์š”ํ•œ ์‹œ๊ฐ„์ด N์ผ์„ ๋„˜์œผ๋ฉด ์ฒ˜๋ฆฌ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ธˆ์•ก์˜ ์ตœ๋Œ€๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • ์žฌ๊ท€ ๋ฉ”์†Œ๋“œ๋กœ ๋ธŒ๋ฃจํŠธ ํฌ์Šค ๋ฐฉ์‹์œผ๋กœ ํ’€์ดํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ํ’€์ดํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] t = new int[n];
        int[] p = new int[n];

        for (int i = 0; i < n; i++) {
            t[i] = sc.nextInt();
            p[i] = sc.nextInt();
        }

        int[] dp = new int[n + 1];

        for (int i = 0; i < n; i++) {
            if (i + t[i] <= n) {
                dp[i + t[i]] = Math.max(dp[i + t[i]], dp[i] + p[i]);
            }
            dp[i + 1] = Math.max(dp[i + 1], dp[i]);
        }
        System.out.println(dp[n]);
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • dp๋ฐฉ์‹์œผ๋กœ ํ’€์ดํ–ˆ๋‹ค. intํ˜• ๋ฐฐ์—ด dp๋Š” (์ธ๋ฑ์Šค)์ผ์— ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๊ธˆ์•ก์„ ์ €์žฅํ•œ๋‹ค.
    • ํ˜„์žฌ ์ผ(i) + ์—…๋ฌด ์ฒ˜๋ฆฌ์— ํ•„์š”ํ•œ ๊ธฐ๊ฐ„( t[ i ] )์ด n์ดํ•˜์—ฌ์•ผ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ ์—…๋ฌด์ด๋‹ค.
      • ๊ธฐ์กด ๊ฐ’ dp[ i + t[ i ] ]์™€ ํ•ด๋‹น ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ–ˆ์„ ๋•Œ ์–ป๋Š” ๊ธˆ์•ก dp[ i ] + p[ i ] ์ค‘ ํฐ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.
    • ํ˜„์žฌ ์ผ์— ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.
      • ๋‹ค์Œ ์ผdp[ i + 1 ]์— ํ˜„์žฌ ์ผdp[ i ]์™€ ๋น„๊ตํ•ด์„œ ํฐ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ๋‹จ์ˆœ for๋ฌธ์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์„๋•Œ ์˜ˆ์ œ 4๋ฒˆ์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.
    • ํ˜„์žฌ ์ผ์— ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ฅผ ๋น ๋œจ๋ ธ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • dp๋กœ ๊ตฌํ˜„ํ•˜๋‹ˆ ์ƒ๊ฐ๋ณด๋‹ค ๋ฌธ์ œ๊ฐ€ ๊ฐ„๋‹จํ•ด์กŒ๋‹ค.
    • ์˜ˆ์ œ 4๋ฒˆ์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋ฌธ์ œ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜๋ฅผ ๋ดค์„๋•Œ, dp์™€ Brute Force๊ฐ€ ์žˆ๊ธธ๋ž˜ ์žฌ๊ท€์™€ dp๋ฐฐ์—ด์ด๋ผ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๋ฐฐ์—ด ๊ทœ์น™์ด ์–ด๋ ค์šธ ๊ฒƒ์ด๋ผ ๊ฒ๋จน์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.
  • ์‚ผ์„ฑ SW ์—ญ๋Ÿ‰ ํ…Œ์ŠคํŠธ ๊ธฐ์ถœ ๋ฌธ์ œ์˜ ์ตœ์ € ๋‚œ์ด๋„ ๋ฌธ์ œ์ด๋‹ค.

728x90

'CodingTest > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ_13305 : ์ฃผ์œ ์†Œ  (0) 2022.12.29
BOJ_1904 : 01ํƒ€์ผ  (0) 2022.12.18
BOJ_15657 : N๊ณผ M (8)  (0) 2022.12.15
BOJ_15656 : N๊ณผ M (7)  (0) 2022.12.14
BOJ_15351 : ์ธ์ƒ ์ ์ˆ˜  (0) 2022.12.14