DP 3

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ’์„  ํ„ฐํŠธ๋ฆฌ๊ธฐ C++ (Lv.3)

https://school.programmers.co.kr/learn/courses/30/lessons/68646?language=cpp ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP) ๋˜๋Š” ์Šคํƒ(stack) ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. 1. ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ DP ๐Ÿ“ ๋ฌธ์ œ ํ’€์ด 1. ๊ฐ ํ’์„ ์˜ ์™ผ์ชฝ ์ตœ์†Ÿ๊ฐ’(leftMin)๊ณผ ์˜ค๋ฅธ์ชฝ ์ตœ์†Ÿ๊ฐ’(rightMin)์„ ์ €์žฅํ•  ๋ฐฐ์—ด ์„ ์–ธ leftMin[0]์€ a ๋ฒกํ„ฐ์˜ ์ฒซ๋ฒˆ์งธ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” rightMin[n-1]์€ a ๋ฒกํ„ฐ์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” 2. for ๋ฌธ์„ ๋Œ๋ฉฐ ๊ฐ ํ’์„ ์˜ ์™ผ์ชฝ ์ตœ์†Ÿ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋“ฑ๊ตฃ๊ธธ

๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ : https://programmers.co.kr/learn/courses/30/lessons/42898 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋“ฑ๊ตฃ๊ธธ ๊ณ„์†๋˜๋Š” ํญ์šฐ๋กœ ์ผ๋ถ€ ์ง€์—ญ์ด ๋ฌผ์— ์ž ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋ฌผ์— ์ž ๊ธฐ์ง€ ์•Š์€ ์ง€์—ญ์„ ํ†ตํ•ด ํ•™๊ต๋ฅผ ๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ง‘์—์„œ ํ•™๊ต๊นŒ์ง€ ๊ฐ€๋Š” ๊ธธ์€ m x n ํฌ๊ธฐ์˜ ๊ฒฉ์ž๋ชจ์–‘์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ m = programmers.co.kr ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ใ€Š๋ฌธ์ œ ํ’€์ดใ€‹ 1. ๊ธธ์˜ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฐ์—ด road[101][101] ์„ ์–ธ 2. ๋ฌผ์ด ์ž ๊ธด ์ง€์—ญ์€ -1๋กœ ๋‘์–ด ๊ฒฝ๋กœ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์ง€ ๋ชปํ•˜๋„๋ก ๋ฐฉ์ง€ 3. ๋ˆ„์  ํ•ฉ์„ ์œ„ํ•ด ์ง‘์˜ ์œ„์ชฝ ์ขŒํ‘œ ๋˜๋Š” ์™ผ์ชฝ ์ขŒํ‘œ๋ฅผ 1๋กœ ๋‘๊ธฐ (๋ณธ์ธ์€ ์™ผ์ชฝ ์ขŒํ‘œ๋ฅผ 1๋กœ ๋‘์—ˆ์Œ) 4. ํ•ด๋‹น ์ขŒํ‘œ๊ฐ€ -1 ์ธ ๊ฒฝ์šฐ์—๋Š” 0์œผ๋กœ..

๋ฐฑ์ค€ 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) ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ใ€Š๋ฌธ์ œ ํ’€์ดใ€‹ 1. ๋ฌผ๊ฑด์˜ ๋ฌด๊ฒŒ์™€ ๊ฐ€์น˜๋ฅผ ์Œ์œผ๋กœ ๋ฌถ์–ด์„œ ๋ฒกํ„ฐ์— ์‚ฝ์ž… 2. ๋ฌผ๊ฑด๋“ค์˜ ๊ฐ€์น˜ํ•ฉ์„ ๋‹ด์„ ๋ฐฐ์—ด dp ์ดˆ๊ธฐํ™” (1) dp ๋ฐฐ์—ด์˜ ํ–‰์€ ๋ฌผ๊ฑด์„ ๋‚˜ํƒ€๋‚ด๊ณ  (์ฒซ๋ฒˆ์งธ ๋ฌผ๊ฑด, ๋‘๋ฒˆ์งธ ๋ฌผ๊ฑด, ...) ์—ด์€ ๋ฌผ๊ฑด์˜ ๋ฌด๊ฒŒ๋ฅผ ๋‚˜ํƒ€๋ƒ„ (0 ~ K) (2) ์ฒซ๋ฒˆ์งธ ๋ฌผ๊ฑด์˜ ๋ฌด๊ฒŒ..

๋ฐ˜์‘ํ˜•