[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์žฌ๊ท€ํ˜ธ์ถœ (๋™์  ๊ณ„ํš๋ฒ•)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 8. 9. 20:26

๐Ÿ‘๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ Dynamic Programming ์ฆ‰, DP๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฒ•์ด๋‹ค. ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ์ ํ™”์‹์œผ๋กœ ๋งŒ๋“ค์–ด ๋ถ„ํ•  ์ •๋ณตํ•  ๋•Œ, ๋ฐ˜๋ณต๋ฌธ ๋˜๋Š” ์žฌ๊ท€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด ๊ณผ์ •์—์„œ ๊ณ„์‚ฐ์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ ์ €์žฅํ•ด๋‘์–ด ์ค‘๋ณต๋˜๋Š” ๊ณ„์‚ฐ์„ ํ•˜์ง€ ์•Š๋„๋ก ๋งŒ๋“ค์–ด์ค€๋‹ค. ์ด๋Š” ์ ํ™”์‹ ์ด๋ ‡๊ฒŒ ๊ฒฐ๊ณผ ๊ฐ’์„ ์ €์žฅํ•ด๋‘๋Š” ๊ฒƒ์„ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๋ณดํ†ต ๋ฐฐ์—ด์˜ ํ˜•ํƒœ๋กœ ์ˆ˜ํ–‰๋œ๋‹ค. DP ๊ณผ์ • ์ „์ฒด ๋ฌธ์ œ๋ฅผ ๋ถ€๋ถ„ ๋ฌธ์ œ๋กœ ๋‹จ์ˆœํ™”ํ•œ๋‹ค. 1๋ฒˆ์˜ ๊ณผ์ •์—์„œ ์ ํ™”์‹์„ ๋„์ถœํ•œ๋‹ค. ์ ํ™”์‹์„ ์ด์šฉํ•˜์—ฌ ๋ฐฐ์—ด๋กœ ๊ฐ„๋‹จํžˆ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ƒ๊ฐํ•œ๋‹ค. bottom-up top-down ์—†๋‹ค๋ฉด ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ๋ฉ”๋ชจ์ด์ œ์ด์…˜ํ•œ๋‹ค. ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ๋ฐฉ์‹์€ ๋ณดํ†ต ๋ฐฐ์—ด์ด๋‹ค. ์ „์ฒด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค. ๋Œ€ํ‘œ ๋ฌธ์ œ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ๊ตฌํ•˜๊ธฐ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1๊ถŒ :: JLIS (์ฝ”๋“œ x - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„์„๋งŒ)
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 4. 19. 15:06

ํ•ฉ์นœ LIS https://www.algospot.com/judge/problem/read/JLIS ๋ฌธ์ œ ์–ด๋–ค ์ˆ˜์—ด์—์„œ 0๊ฐœ ์ด์ƒ์˜ ์ˆซ์ž๋ฅผ ์ง€์šด ๊ฒฐ๊ณผ๋ฅผ ์› ์ˆ˜์—ด์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด '4 7 6'์€ '4 3 7 6 9'์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์ž…๋‹ˆ๋‹ค. ์ค‘๋ณต๋œ ์ˆซ์ž๊ฐ€ ์—†๊ณ  ์˜ค๋ฆ„ ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด๋“ค์„ ๊ฐ€๋ฆฌ์ผœ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด๋ผ๊ณ  ๋ถ€๋ฅด์ง€์š”. ์˜ˆ๋ฅผ ๋“ค์–ด '3 6 9'๋Š” ์•ž์˜ ์ˆ˜์—ด์˜ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด์ž…๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ์ •์ˆ˜ ์ˆ˜์—ด A ์™€ B ์—์„œ ๊ฐ๊ฐ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ์–ป์€ ๋’ค ์ด๋“ค์„ ํฌ๊ธฐ ์ˆœ์„œ๋Œ€๋กœ ํ•ฉ์นœ ๊ฒƒ์„ ํ•ฉ์นœ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋กœ ํ•ฉ์‹œ๋‹ค. ์ด ์ค‘ ๊ฐ€์žฅ ๊ธด ์ˆ˜์—ด์„ ํ•ฉ์นœ LIS(JLIS, Joined Longest Increasing Subsequence)์ด๋ผ๊ณ  ๋ถ€๋ฆ…์‹œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด '..

[c++] Longest Increasing Sequence (๋ฌธ์ œ ID : LIS, ๋‚œ์ด๋„ : ํ•˜) :: ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1๊ถŒ
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 4. 8. 16:35

https://www.algospot.com/judge/problem/read/LIS ๋ฌธ์ œ ์–ด๋–ค ์ •์ˆ˜ ์ˆ˜์—ด์—์„œ 0๊ฐœ ์ด์ƒ์˜ ์ˆซ์ž๋ฅผ ์ง€์šฐ๋ฉด ์ด ์ˆ˜์—ด์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด (subsequence) ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 10 7 4 9 ์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์—๋Š” 7 4 9, 10 4, 10 9 ๋“ฑ์ด ์žˆ๋‹ค. ๋‹จ, 10 4 7 ์€ ์›๋ž˜ ์ˆ˜์—ด์˜ ์ˆœ์„œ์™€ ๋‹ค๋ฅด๋ฏ€๋กœ 10 7 4 9 ์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ์•„๋‹ˆ๋‹ค. ์–ด๋–ค ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ์ˆœ์ฆ๊ฐ€ํ•  ๋•Œ ์ด ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด (increasing subsequence) ๋ผ๊ณ  ํ•œ๋‹ค. ์ฃผ์–ด์ง„ ์ˆ˜์—ด์˜ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด ์ค‘ ๊ฐ€์žฅ ๊ธด ๊ฒƒ์˜ ๊ธธ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ. ์–ด๋–ค ์ˆ˜์—ด์˜ ๊ฐ ์ˆ˜๊ฐ€ ์ด์ „์˜ ์ˆ˜๋ณด๋‹ค ํด ๋•Œ, ์ด ์ˆ˜์—ด์„ ์ˆœ์ฆ๊ฐ€ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ์ž…๋ ฅ ์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ˆ˜ C..