์ •๊ธ€/TIL

[TIL] - 2023.04.28

Casteira 2023. 4. 28. 09:27

๐Ÿ“Œ - G5_12865_ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ ๋ฌธ์ œ

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

 

12865๋ฒˆ: ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ

์ฒซ ์ค„์— ๋ฌผํ’ˆ์˜ ์ˆ˜ N(1 ≤ N ≤ 100)๊ณผ ์ค€์„œ๊ฐ€ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ๋Š” ๋ฌด๊ฒŒ K(1 ≤ K ≤ 100,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑฐ์ณ ๊ฐ ๋ฌผ๊ฑด์˜ ๋ฌด๊ฒŒ W(1 ≤ W ≤ 100,000)์™€ ํ•ด๋‹น ๋ฌผ๊ฑด์˜ ๊ฐ€์น˜ V(0 ≤ V ≤ 1,000)

www.acmicpc.net

DP๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ, ๊ณ„์† ๋จธ๋ฆฌ๋ฅผ ๊ตด๋ ค๋ด๋„ ํ’€์ด๋ฒ•์ด ์ƒ๊ฐ๋‚˜์ง€ ์•Š์•„์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ–ˆ๋‹ค.

 

์ด๋•Œ๊นŒ์ง€๋Š” 2์ฐจ์› ๋ฐฐ์—ด์„ ์ปจํŠธ๋กค ํ•  ๋•Œ i,j๋ฅผ ์ด์šฉํ•ด์„œ i,j์˜ ๊ฐ’์— ๋งž๋Š” ์นธ์„ ์—…๋ฐ์ดํŠธ ์‹œ์ผœ์ฃผ๋Š” ๋А๋‚Œ์ด์—ˆ๋Š”๋ฐ,

 

DP๋Š” ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋“ค์„ ๋ณด๋‹ค๋ณด๋‹ˆ i,j๋กœ ์ปจํŠธ๋กค ํ•˜๊ธด ํ•˜์ง€๋งŒ , ์•„๋ž˜์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์ด j๋ฅผ ๊ฐ€๋ฐฉ์˜ ๋ฌด๊ฒŒ์ธ w์™€ ๋น„๊ตํ•ด์„œ ํ•ด๋‹นํ•˜๋Š” ์นธ์— i,j ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ  w, v์™€ ๊ฐ™์€ ๋ณ€์ˆ˜๋“ค๊นŒ์ง€ ๊ฐ™์ด ์‚ฌ์šฉํ•ด์•ผ๋ผ์„œ ๊ทธ๋Ÿฐ์ง€ ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ๋œ๋‹ค. 

 

์•„๋ž˜์˜ ์˜ˆ์‹œ์—๋„ j์™€ w๋ฅผ ๋น„๊ตํ•ด์„œ j๊ฐ€ w๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ด์ „ ๊ฐ’์„ ๊ฐ€์ ธ์™€์„œ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๊ณ ,

j๊ฐ€ w์™€ ๊ฐ™๊ฑฐ๋‚˜ ํฌ๋‹ค๋ฉด ์ด์ „ ๊ฐ€๋ฐฉ๊ณผ ํ˜„์žฌ ๊ฐ€๋ฐฉ์˜ ๋ฌด๊ฒŒ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ํ‘œ๋กœ ๊ทธ๋ ค๋ด„

๐Ÿ”ฅ - ํŒŒ์ด์ฌ ์ฝ”๋“œ

from sys import stdin as s
from collections import deque

s = open('input.txt','rt')
# 4 7
# 6 13
# 4 8
# 3 6
# 5 12 ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ

n, k = map(int, s.readline().split())


thing = [[0,0]]
d = [[0]*(k+1) for _ in range(n+1)]

for i in range(n):
    thing.append(list(map(int, s.readline().split())))

for i in range(1, n+1): # i -> ๋‹ค๋ฅธ ์ง
    for j in range(1, k+1): # j -> ํ—ˆ์šฉ๋˜๋Š” ๋ฌด๊ฒŒ
        w = thing[i][0]
        v = thing[i][1]

        if j < w:
            d[i][j] = d[i-1][j]
        else:
            d[i][j] = max(d[i-1][j], d[i-1][j-w]+v)

print(d[n][k])

 

 

 

 


 

 

 

๋”๋ณด๊ธฐ

ใ€Œ ์‹ ์˜ ์„ญ๋ฆฌ๋ฅผ ํƒ“ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋งˆ๋‹ค ์ž๋„ค์˜ ๋งˆ์Œ ์ฃผ๋ณ€์„ ์‚ดํŽด๋ณด๊ฒŒ. ๊ทธ๋Ÿฌ๋ฉด ์–ด๋–ค ์ด์œ ๋กœ ๊ทธ ์ผ์ด ์ผ์–ด๋‚ฌ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด์•ผ. ใ€

-์—ํ”ฝํ…Œํ† ์Šค, ๋Œ€ํ™”๋ก 3.17.1

 

๋ฌด์–ธ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ๋‹ค๋Š” ๋А๋‚Œ์€ ๋‹จ์ง€ ์ธ์‹์˜ ๋ฌธ์ œ์ผ ๋ฟ์ด๋‹ค. ๋ชจ๋“  ์ผ์— ์ด์œ ๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ ํ•œ ๊ฐœ์ธ์ด ๊ด‘๋Œ€ํ•œ ์„ญ๋ฆฌ์˜ ์ด๋ฉด์„ ์ •ํ™•ํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๊ธฐ๋Š” ํž˜๋“ค๋‹ค.

์ง€๊ตฌ ๋ฐ˜๋Œ€ํŽธ์— ์žˆ๋Š” ๋‚˜๋น„์˜ ์ž‘์€ ๋‚ ๊ฐฏ์ง“ ๋•Œ๋ฌธ์— ํƒœํ’์ด ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์ง€๊ธˆ ๊ฒช๊ณ  ์žˆ๋Š” ๋ถˆ์šด์ด ํ–‰์šด์˜ ์ „์กฐ์ผ ์ˆ˜๋„ ์žˆ๋‹ค.

 

๋”๋ณด๊ธฐ

ใ€Œ ์ œ๋…ผ์€ ์ง€์‹์„ ํ™•๊ณ ํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ž๊ธฐ๊ธฐ๋งŒ์„ ๊ฐ€์žฅ ๊ฒฝ๊ณ„ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋งํ–ˆ๋‹ค. ใ€

-๋””์˜ค๊ฒŒ๋„ค์Šค์˜ ๊ฐ•์˜, ํƒ์›”ํ•œ ์ฒ ํ•™์ž๋“ค์˜ ์‚ถ. 7.23

 

์ž์‹ ์ด ์ด๋ฏธ ์™„๋ฒฝํ•˜๋ฉฐ ๋„๋ฆฌ ์กด๊ฒฝ๋ฐ›๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ํ•œ ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ๋•์„ฑ๋„ ํ•จ์–‘ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ํƒ€์ธ์˜ ์กด๊ฒฝ์„ ์–ป๋Š” ๊ฒƒ๋„ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋Ÿฐ ์˜๋ฏธ์—์„œ ๊ทธ๋ฆ‡๋œ ์ž๋ถ€์‹ฌ๊ณผ ์ž๊ธฐ๊ธฐ๋งŒ์€ ์ธ๊ฐ„์ด ๋งˆ๋•…ํžˆ ๊ฐ€์ ธ์•ผํ•˜๋Š” ๋ฏธ๋•์˜ ์ ์ด๋‹ค.

์ด ๋‘˜์€ ๋ฌด์—‡์ด๋“  '์ด๋ฏธ ๊ฐ–๊ณ  ์žˆ๋‹ค'๋ผ๋ฉฐ ์šฐ๋ฆฌ๋ฅผ ์†์ธ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ๋ฅผ ์†์ด๊ธฐ ์œ„ํ•ด ๊ธฐ๋ฏผํ•˜๊ฒŒ ๋‹ฌ๋ ค์˜ค๋Š” ์ž๋ถ€์‹ฌ์„ ์ ๋Œ€ํ•˜๋Š” ๋งˆ์Œ์œผ๋กœ ๋Œ€ํ•ด์•ผ ํ•œ๋‹ค.

ํ•ญ์ƒ ๊ฒธ์†ํ•˜๊ณ , ์„ฑ์ฐฐํ•˜๋ฉฐ ๋ฐ˜์„ฑํ•˜๋Š” ์ž์„ธ๋กœ ์‚ถ์„ ๋Œ€ํ•ด์•ผ ์‹œ์•ผ๊ฐ€ ๋„“์–ด์ง€๋ฉฐ ๊ฒฌ๋ฌธ์ด ์ƒ๊ธด๋‹ค.

 

๋”๋ณด๊ธฐ

ใ€Œ 3์ฒœ ๋…„์„ ์‚ด์•„๊ฐ„๋‹ค๊ณ  ํ• ์ง€๋ผ๋„, ํ—ค์•„๋ฆด ์ˆ˜ ์—†์ด ๋งŽ์€ ์ธ์ƒ์„ ์‚ด ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ• ์ง€๋ผ๋„ ๋ช…์‹ฌํ•˜๋ผ. ์šฐ๋ฆฌ๊ฐ€ ์žƒ์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์€ ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ์˜์œ„ํ•˜๊ณ  ์žˆ๋Š” ์ˆœ๊ฐ„์˜ ์‚ถ์ด๋ฉฐ ์†Œ์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๋˜ํ•œ ์ง€๊ธˆ ์ด ์ˆœ๊ฐ„์˜ ์‚ถ๋ฟ์ด๋‹ค. ๊ธด ์‚ถ์ด๋“  ์งง์€ ์‚ถ์ด๋“  ๋™์ผํ•˜๋‹ค. ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์†Œ์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์ง€๊ธˆ ์Šค์ณ ์ง€๋‚˜๊ณ  ์žˆ๋Š” ํ˜„์žฌ๋ฐ–์— ์—†๋‹ค. ๊ณผ๊ฑฐ๋ฅผ ์žƒ์–ด๋ฒ„๋ฆฌ๊ฑฐ๋‚˜ ๋ฏธ๋ž˜๋ฅผ ์žƒ์–ด๋ฒ„๋ฆด ์ˆ˜๋Š” ์—†๋‹ค. ์–ด๋–ป๊ฒŒ ์ง€๊ธˆ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์€ ๊ฒƒ์„ ์žƒ์–ด๋ฒ„๋ฆด ์ˆ˜ ์žˆ๊ฒ ๋Š”๊ฐ€? ใ€

-๋งˆ๋ฅด์ฟ ์Šค ์•„์šฐ๋ ๋ฆฌ์šฐ์Šค, ๋ช…์ƒ๋ก, 2.14

 

"์–ด์ œ๋Š” ์ง€๋‚˜๊ฐ„ ๊ณผ๊ฑฐ์š”, ๋‚ด์ผ์€ ๋‹ค๊ฐ€์˜ฌ ๋ฏธ๋ž˜์ง€๋งŒ, ์˜ค๋Š˜์€ ์„ ๋ฌผ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ˜„์žฌ(present)๋ฅผ ์„ ๋ฌผ(present)์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์ด์œ ๋„ ์—ฌ๊ธฐ์— ์žˆ๋‹ค."

์šฐ๋ฆฌ๋Š” ํ˜„์žฌ๋งŒ์„ ์†Œ์œ ํ•œ๋‹ค. ๊ทธ ํ˜„์žฌ์—๋„ ๋งŒ๋ฃŒ์ผ์€ ์žˆ๋‹ค. ๊ทธ๊ฒƒ๋„ ๋งŒ๋ฃŒ์ผ์ด ๋„ˆ๋ฌด ๋นจ๋ฆฌ ๋‹ค๊ฐ€์˜จ๋‹ค. ๊ทธ๋ž˜์„œ ํ˜„์žฌ๋ฅผ ์ฆ๊ฒจ์•ผ ํ•œ๋‹ค. ์ด๊ฒƒ๋งŒ์ด ์šฐ๋ฆฌ ์ „ ์ƒ์• ๋ฅผ ํ†ตํ•ด ์ง€์†๋˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ•˜๋ฃจ๋Š” ๋„ˆ๋ฌด๋‚˜๋„ ์งง๊ณ  ํ˜„์žฌ๋Š” ๋งค ์ˆœ๊ฐ„ ์ง€๋‚˜๊ฐ„๋‹ค. ํ˜„์žฌ๋ฅผ ์ฆ๊ธฐ๊ณ , ๊ฑด๊ฐ•ํ•˜๊ฒŒ ์†Œ๋น„๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด ์ง€๋‚˜๊ฐ„ ๊ณผ๊ฑฐ์™€ ๋‹ค๊ฐ€์˜ฌ ๋ฏธ๋ž˜์— ๋Œ€ํ•œ ์˜ˆ์˜์ด๋‹ค.

 


 

๐Ÿ”ฅ - ํ† ๋ผ ๋‹ค ํ‚ค์šฐ๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์ง‘์ค‘์ด ๋„ˆ๋ฌด ์•ˆ๋ผ์„œ ์‹คํŒจ.. ์˜ค๋Š˜์€ ์ผ์ฐ ์‰ฌ๊ณ  ๋‚ด์ผ ์ผ์ฐ๋‚˜์™€์„œ ๋” ์—ด์‹ฌํžˆ ํ•˜๊ธฐ