๐Ÿ“ฑ ์•ฑ

๋ฐฑ์ค€ Gold3

์•ฑ

๋ฌธ์ œ


์šฐ๋ฆฌ๋Š” ์Šค๋งˆํŠธํฐ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์•ฑ(App)์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค. ๋Œ€๊ฐœ์˜ ๊ฒฝ์šฐ ํ™”๋ฉด์— ๋ณด์ด๋Š” โ€˜์‹คํ–‰ ์ค‘โ€™์ธ ์•ฑ์€ ํ•˜๋‚˜๋ฟ์ด์ง€๋งŒ ๋ณด์ด์ง€ ์•Š๋Š” ์ƒํƒœ๋กœ ๋งŽ์€ ์•ฑ์ด โ€˜ํ™œ์„ฑํ™”โ€™๋˜์–ด ์žˆ๋‹ค. ์•ฑ๋“ค์ด ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ํ™”๋ฉด์— ๋ณด์ด์ง€ ์•Š๋”๋ผ๋„ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ „์˜ ์ƒํƒœ๊ฐ€ ๊ธฐ๋ก๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ด ์•„๋‹ˆ๋”๋ผ๋„ ์ด๋ ‡๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ์— ๋‚จ๊ฒจ๋‘๋Š” ์ด์œ ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ด์ „์— ์‹คํ–‰ํ•˜๋˜ ์•ฑ์„ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ์— ์ง์ „์˜ ์ƒํƒœ๋ฅผ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ์ฝ์–ด ๋“ค์—ฌ ์‹คํ–‰ ์ค€๋น„๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งˆ์น˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.

ํ•˜์ง€๋งŒ ์Šค๋งˆํŠธํฐ์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ œํ•œ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•œ๋ฒˆ์ด๋ผ๋„ ์‹คํ–‰ํ–ˆ๋˜ ๋ชจ๋“  ์•ฑ์„ ํ™œ์„ฑํ™”๋œ ์ฑ„๋กœ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ๋‚จ๊ฒจ๋‘๋‹ค ๋ณด๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์ƒํƒœ๊ฐ€ ์˜ค๊ธฐ ์‰ฝ๋‹ค. ์ƒˆ๋กœ์šด ์•ฑ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•ด์ง€๋ฉด ์Šค๋งˆํŠธํฐ์˜ ์šด์˜์ฒด์ œ๋Š” ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ๋Š” ์•ฑ๋“ค ์ค‘ ๋ช‡ ๊ฐœ๋ฅผ ์„ ํƒํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ์‚ญ์ œํ•˜๋Š” ์ˆ˜๋ฐ–์— ์—†๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ์•ฑ์˜ โ€˜๋น„ํ™œ์„ฑํ™”โ€™๋ผ๊ณ  ํ•œ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์ƒํ™ฉ์—์„œ ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ๋Š” ์•ฑ๋“ค์„ ๋ฌด์ž‘์œ„๋กœ ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋งŒํผ ๋น„ํ™œ์„ฑํ™” ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋‹ค. ๋น„ํ™œ์„ฑํ™”๋œ ์•ฑ๋“ค์„ ์žฌ์‹คํ–‰ํ•  ๊ฒฝ์šฐ ๊ทธ๋งŒํผ ์‹œ๊ฐ„์ด ๋” ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์€ ์ด๋Ÿฌํ•œ ์•ฑ์˜ ๋น„ํ™œ์„ฑํ™” ๋ฌธ์ œ๋ฅผ ์Šค๋งˆํŠธํ•˜๊ฒŒ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค

ํ˜„์žฌ N๊ฐœ์˜ ์•ฑ, A1, โ€ฆ, AN์ด ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์ด๋“ค ์•ฑ Ai๋Š” ๊ฐ๊ฐ mi ๋ฐ”์ดํŠธ๋งŒํผ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๋˜ํ•œ, ์•ฑ Ai๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•œ ํ›„์— ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•  ๊ฒฝ์šฐ, ์ถ”๊ฐ€์ ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ๋น„์šฉ(์‹œ๊ฐ„ ๋“ฑ)์„ ์ˆ˜์น˜ํ™” ํ•œ ๊ฒƒ์„ ci ๋ผ๊ณ  ํ•˜์ž. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ๋กœ์šด ์•ฑ B๋ฅผ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜์—ฌ, ์ถ”๊ฐ€๋กœ M ๋ฐ”์ดํŠธ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•˜์ž. ์ฆ‰, ํ˜„์žฌ ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ๋Š” ์•ฑ A1, โ€ฆ, AN ์ค‘์—์„œ ๋ช‡ ๊ฐœ๋ฅผ ๋น„ํ™œ์„ฑํ™” ํ•˜์—ฌ M ๋ฐ”์ดํŠธ ์ด์ƒ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ถ”๊ฐ€๋กœ ํ™•๋ณดํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์€ ๊ทธ ์ค‘์—์„œ ๋น„ํ™œ์„ฑํ™” ํ–ˆ์„ ๊ฒฝ์šฐ์˜ ๋น„์šฉ ci์˜ ํ•ฉ์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ M ๋ฐ”์ดํŠธ๋ฅผ ํ™•๋ณดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค.

์ž…๋ ฅ


์ž…๋ ฅ์€ 3์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ฒซ ์ค„์—๋Š” ์ •์ˆ˜ N๊ณผ M์ด ๊ณต๋ฐฑ๋ฌธ์ž๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง€๋ฉฐ, ๋‘˜์งธ ์ค„๊ณผ ์…‹์งธ ์ค„์—๋Š” ๊ฐ๊ฐ N๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ๊ณต๋ฐฑ๋ฌธ์ž๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์˜ N๊ฐœ์˜ ์ •์ˆ˜๋Š” ํ˜„์žฌ ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ๋Š” ์•ฑ A1, โ€ฆ, AN์ด ์‚ฌ์šฉ ์ค‘์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐ”์ดํŠธ ์ˆ˜์ธ m1, โ€ฆ, mN์„ ์˜๋ฏธํ•˜๋ฉฐ, ์…‹์งธ ์ค„์˜ ์ •์ˆ˜๋Š” ๊ฐ ์•ฑ์„ ๋น„ํ™œ์„ฑํ™” ํ–ˆ์„ ๊ฒฝ์šฐ์˜ ๋น„์šฉ c1, โ€ฆ, cN์„ ์˜๋ฏธํ•œ๋‹ค

๋‹จ, 1 โ‰ค N โ‰ค 100, 1 โ‰ค M โ‰ค 10,000,000์ด๋ฉฐ, 1 โ‰ค m1, โ€ฆ, mN โ‰ค 10,000,000์„ ๋งŒ์กฑํ•œ๋‹ค. ๋˜ํ•œ, 0 โ‰ค c1, โ€ฆ, cN โ‰ค 100์ด๊ณ , M โ‰ค m1 + m2 + โ€ฆ + mN์ด๋‹ค.

์ถœ๋ ฅ


ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ M ๋ฐ”์ดํŠธ๋ฅผ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•œ ์•ฑ ๋น„ํ™œ์„ฑํ™”์˜ ์ตœ์†Œ์˜ ๋น„์šฉ์„ ๊ณ„์‚ฐํ•˜์—ฌ ํ•œ ์ค„์— ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

์˜ˆ์ œ ์ž…๋ ฅ 1

5 60
30 10 20 35 40
3 0 3 5 4

์˜ˆ์ œ ์ถœ๋ ฅ 1

6

๐Ÿ“– ๊ฐ€์ ธ๋‹ค ์“ฐ๊ธฐ

์ฒ˜์Œ์—๋Š” ํˆฌํฌ์ธํ„ฐ๋ฅผ ๋– ์˜ฌ๋ ธ๋‹ค. cost0๋ถ€ํ„ฐ cost n-1๊นŒ์ง€ ๊ฒ€์‚ฌ๋ฅผ ํ•ด๋ณด๋ฉด์„œ ํ™•๋ณดํ•  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๋น„์šฉ๋“ค์˜ ํ•ฉ์„ returnํ•ด์ฃผ๋ฉด ๋  ๊ฒƒ์ด๊ณ  ํ™•๋ณดํ•  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์—†๋‹ค๋ฉด ์ด๋ฅผ 1 ๋ฐ”์ดํŠธ ์ฆ๊ฐ€์‹œ์ผœ์„œ ์žฌํƒ์ƒ‰์„ ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฌธ์ œ์—์„œ์˜ ๋น„์šฉ์€ ๋ถ€๋ถ„ ์—ฐ์† ์ˆ˜์—ด์ด ์•„๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, index๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์„ ์ •ํ•ด์„œ ํ•ฉํ•ด๋„ ๋˜๋ฏ€๋กœ ํˆฌํฌ์ธํ„ฐ๋ฅผ ํ™œ์šฉํ•˜๊ธฐ์—๋Š” ์ ์ ˆ์น˜ ์•Š๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜์ƒ ์ด ๋ฌธ์ œ๋Š” ๋ฐฐ๋‚ญ ๋ฌธ์ œ๋กœ ๋ถ„๋ฅ˜๋˜์–ด ์žˆ๋‹ค. ๋ฐฐ๋‚ญ ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ผ๊นŒ?

Knapsack Algorithm

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-07-31 แ„‹แ…ฉแ„’แ…ฎ 7 00 28

๋ƒ…์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋Š” ๋ฐฐ๋‚ญ ๋ฌธ์ œ๋Š” ๋„๋‘‘์ด ๋ฐฐ๋‚ญ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ง์„ ํ›”์ณ์„œ ๋‹ฌ์•„๋‚˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ ๋ฐฐ๋‚ญ์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ฌด๊ฒŒ๋Š” ํ•œ์ •์ ์ด๊ธฐ์— ์ตœ๋Œ€ํ•œ ๊ฐ€์น˜๊ฐ€ ๋†’์€ ๊ฒƒ์„ ๋‹ด์•„๊ฐ€๋ ค๊ณ  ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

์–ธ๋œป ๋ณด๋ฉด ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋น„์Šทํ•ด๋ณด์ด์ง€๋งŒ ์ฐจ์ด์ ์ด ๋ฌด์—‡์ผ๊นŒ? ๐Ÿง

๋‹ค์Œ ์งˆ๋ฌธ์— ๋‹ต์„ ํ•ด๋ณด์ž. ใ…Žใ…Ž

๋ฐฐ๋‚ญ = ๋ฌด๊ฒŒ ํ•œ๊ณ„ 15kg
A = ๊ฐ€์น˜ 10 , ๋ฌด๊ฒŒ 13kg
B = ๊ฐ€์น˜ 6, ๋ฌด๊ฒŒ 6kg
C = ๊ฐ€์น˜ 5, ๋ฌด๊ฒŒ 6kg

๋ฐฐ๋‚ญ์„ ์ตœ๋Œ€ํ•œ ๊ฐ€์น˜๊ฐ€ ๋†’๊ฒŒ ์‹ธ๋ ค๊ณ  ํ•˜๋Š”๋ฐ ์ด๋ฅผ ๊ทธ๋ฆฌ๋””ํ•˜๊ฒŒ ์ ‘๊ทผํ•˜๋ฉด A๋ฅผ ๋‹ด๊ณ  ๋์ด ๋‚œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ •๋‹ต์€ B์™€ C๋ฅผ ๋‹ด์•„ ๊ฐ€์น˜ 11์˜ ๋ฐฐ๋‚ญ์ด ์ตœ๋Œ€ ๊ฐ€์น˜์ด๋‹ค.

์ด๋ฅผ ์œ„ํ•˜์—ฌ ๋ƒ…์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์กด์žฌํ•˜๊ณ  ์ด๋Š” Dynamic Programming์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค!

์ด์ฒ˜๋Ÿผ ๋ฌผ๊ฑด์„ ๋‚˜๋ˆŒ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ [0-1 ๋ƒ…์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜]์ด๋ผ๊ณ  ์นญํ•œ๋‹ค.

๋ฐ˜๋ฉด์— ๋ฌผ๊ฑด์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? [Fraction ๋ƒ…์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜]์€ ๊ทธ๋ฆฌ๋””๋กœ๋„ ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

แ„‹แ…งแ†ซแ„‰แ…ณแ†ธแ„Œแ…กแ†ผ-81

์œ„์™€ ๊ฐ™์ด ๋ฌผ๊ฑด์˜ ๊ฐ€์น˜๋ฅผ ๋ฌด๊ฒŒ๋กœ ๋‚˜๋ˆ„์–ด ๋‹จ๊ฐ€๋ฅผ ๋งž์ถ˜ ๋‹ค์Œ, ์ตœ๋Œ€ํ•œ ์ด๋“์„ ๋ณด๋Š” ๋‹จ๊ฐ€๋กœ ๊ณ„์† ์ฑ™๊ฒจ์ฃผ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ [0-1 ๋ƒ…์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜]์œผ๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง• ๋•Œ๋ฌธ์ด๋‹ค.

  • ๋ฐฐ๋‚ญ ๐Ÿ‘‰๐Ÿป ํ™•๋ณดํ•ด์•ผ ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ
  • ์ง์˜ ๋ฌด๊ฒŒ ๐Ÿ‘‰๐Ÿป ์•ฑ์˜ ๋ฉ”๋ชจ๋ฆฌ
  • ๊ฐ€์น˜ ๐Ÿ‘‰๐Ÿป ๋น„์šฉ
  • ์•ฑ ๐Ÿ‘‰๐Ÿป ๋‚˜๋ˆ„์–ด์งˆ ์ˆ˜ ์—†์Œ

๐Ÿ“ ๊ณผ์ • ์„ค๊ณ„/๊ด€๋ฆฌ

แ„‹แ…งแ†ซแ„‰แ…ณแ†ธแ„Œแ…กแ†ผ-80 2

์ตœ์ข… DP ํ…Œ์ด๋ธ”์€ ์œ„์™€ ๊ฐ™์€๋ฐ ์ค‘์š” ๋ถ€๋ถ„์ธ ๋นจ๊ฐ„ ๋ฐ•์Šค๋ฅผ ์ฃผ๋ชฉํ•˜์ž.

ํ˜„์žฌ ์œ„์น˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 20์ธ 3๋ฒˆ ์•ฑ์— ์œ„์น˜ํ•ด์žˆ๊ณ  3๋ฒˆ ์•ฑ์˜ ๋น„์šฉ์€ 3์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋น„์šฉ์ด 0๋ถ€ํ„ฐ 15๊นŒ์ง€(๋ชจ๋“  ์•ฑ์„ ๋‹ค ๊ป์„ ๋•Œ ๋น„์šฉ์ด 15์ด๋‹ˆ๊นŒ) ๊ฐ๊ฐ์˜ ๊ฒฝ์šฐ์˜ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค.

์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ๋‹ค์Œ 4๋ฒˆ ์•ฑ์œผ๋กœ ๋„˜์–ด๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ๋Š” 35๋ฐ”์ดํŠธ์ด๊ณ  ๋น„์šฉ์€ 5๋‹ค. ๋™์ผํ•˜๊ฒŒ ๋น„์šฉ์ด 0๋ถ€ํ„ฐ 15๊นŒ์ง€ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ํ™•๋ณด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ตฌํ• ๊ฑด๋ฐ

0~4๊นŒ์ง€๋Š” ์ด์ „ dp๋ฐฐ์—ด๊ณผ ๋™์ผํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์–ด์ฐจํ”ผ 4๋ฒˆ์•ฑ์„ ๋„๋ฉด 5์˜ ๋น„์šฉ์ด ์†Œ๋ชจ๋˜๋Š”๋ฐ 0~4 ๋น„์šฉ์œผ๋กœ๋Š” ๋งŒ์กฑ์‹œํ‚ค์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋น„์šฉ 5 ์ด์ƒ๋ถ€ํ„ฐ๋Š” 4๋ฒˆ์•ฑ์„ ๊ป์„๋•Œ์™€ ์•„๋‹ ๋•Œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ตœ๋Œ€ ํ™•๋ณด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐฑ์‹ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป CODE

import sys
input = sys.stdin.readline

N, necessity = map(int,input().split())
memory = [0] + list(map(int,input().split()))
cost = [0] + list(map(int,input().split()))

# dp[i][j]: i๋ฒˆ์งธ์˜ ์•ฑ & j ๋น„์šฉ์œผ๋กœ ์ตœ๋Œ€ ํ™•๋ณด ๋ฉ”๋ชจ๋ฆฌ
dp = [[0]*(sum(cost)+1) for _ in range(len(cost))]

minimum = sum(cost)
for i in range(1,len(cost)):
    for j in range(sum(cost)+1):

        if cost[i] > j:
            dp[i][j] = dp[i-1][j]
        else:
            dp[i][j] = max(dp[i-1][j],memory[i]+dp[i-1][j-cost[i]])
        
        
        if dp[i][j] >= necessity:
            minimum = min(minimum,j)
        

print(minimum)

ยฉ 2022. All rights reserved.

Powered by Hydejack v9.1.6