๋ชฉ๋ก๋ฐฑ์ค€ (44)

Hello Ocean! ๐ŸŒผ

[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””] ๋ฐฑ์ค€ #9251 LCS

๋ฌธ์ œ LCS(Longest Common Subsequence, ์ตœ์žฅ ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด) ๋‘ ์ˆ˜์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ชจ๋‘์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ๋˜๋Š” ์ˆ˜์—ด ์ค‘ ๊ฐ€์žฅ ๊ธด ๊ฒƒ์„ ์ฐพ๋Š” ๋ฌธ์ œ. ์˜ˆ๋ฅผ ๋“ค์–ด, ACAYKP์™€ CAPCAK์˜ LCS๋Š” ACAK๊ฐ€ ๋œ๋‹ค. => ์—ฐ์†ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ๊ฒƒ์ด ํฌ์ธํŠธ. ํ’€์ด 2์ฐจ์› cache๋ฅผ ์ด์šฉํ•œ DP ๋ฐฉ์‹์œผ๋กœ ํ’€๋ฉด ๋œ๋‹ค. ๋ง๋กœ ํ’€์–ด ์“ด ๊ฒƒ์€ ์ดํ•ดํ•˜๊ธฐ ํž˜๋“œ๋ฏ€๋กœ ๊ทธ๋ฆผ์„ ๊ทธ๋ ค๋ณด์•˜๋‹ค. s1 = ACAYKP s2 = CAPCAK ๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ cache์˜ ๋ชจ์Šต์ด๋‹ค. cache[i][j]์—๋Š” s1์˜ i ๋ฒˆ์งธ์™€ s2์˜ j ๋ฒˆ์งธ๊ฐ€ ๊ฐ™์„ ๋•Œ ๊ฐ’์ด ์ฑ„์›Œ์ง„๋‹ค. (๊ฐ™์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” 0์ด ์ฑ„์›Œ์ง„๋‹ค) ๋‘˜์ด ๊ฐ™์„ ๋•Œ, ๊ทธ๋ƒฅ 1์„ ์ฑ„์šฐ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ง€๋‚œ ๊ตฌ์—ญ์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’+1์„ ์ฑ„์šด๋‹ค. ์ฒซ ๋ฒˆ์งธ ๊ทธ๋ฆผ์—์„œ ๋นจ..

Algorithm 2020. 4. 19. 00:36
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””] ๋ฐฑ์ค€ #2531 ํšŒ์ „์ดˆ๋ฐฅ

[๋ฌธ์ œ] ํšŒ์ „ํ•˜๋Š” ๋ฒจํŠธ ์œ„์— ์œ„์™€ ๊ฐ™์ด ์ดˆ๋ฐฅ๋“ค์ด ์žˆ๋‹ค. ๋ฒจํŠธ ์œ„์—๋Š” ๊ฐ™์€ ์ข…๋ฅ˜์˜ ์ดˆ๋ฐฅ์ด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์†๋‹˜์€ ์ดˆ๋ฐฅ์„ ๊ณจ๋ผ์„œ ๋จน์„ ๊ฒƒ์ด๋‹ค. 1. ์—ฐ์†์œผ๋กœ k์ ‘์‹œ๋ฅผ ๋จน์„ ๊ฒฝ์šฐ, ํ• ์ธ๋œ ๊ฐ€๊ฒฉ์„ ์ง€๋ถˆํ•œ๋‹ค. 2. ๊ฐ ๊ณ ๊ฐ์—๊ฒŒ ์ดˆ๋ฐฅ ์ข…๋ฅ˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์“ฐ์—ฌ์ง„ ์ฟ ํฐ์„ ๋ฐœํ–‰ํ•˜๊ณ , ์†๋‹˜์ด 1๋ฒˆ ํ–‰์‚ฌ์— ์ฐธ๊ฐ€ํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ์ดˆ๋ฐฅ 1์ ‘์‹œ๋ฅผ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ•œ๋‹ค. ๋ฒจํŠธ ์œ„์— ํ•ด๋‹น ์ดˆ๋ฐฅ์ด ์—†์„ ๊ฒฝ์šฐ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด ์ œ๊ณตํ•œ๋‹ค. ์†๋‹˜์€ ์œ„์˜ ํ–‰์‚ฌ์— ์ฐธ์—ฌํ•˜์—ฌ ์ตœ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์ดˆ๋ฐฅ์„ ๋จน์œผ๋ ค๊ณ  ํ•œ๋‹ค. [input] ๋ฒจํŠธ์— ๋†“์ธ ์ ‘์‹œ์˜ ์ˆ˜ N ( 2 ≤ N ≤ 30000 ) ์ดˆ๋ฐฅ์˜ ๊ฐ€์ง“์ˆ˜ d ( 2 ≤ d ≤ 3000 ) ์—ฐ์†ํ•ด์„œ ๋จน๋Š” ์ ‘์‹œ์˜ ์ˆ˜ k ( 2 ≤ k ≤ 3000 (k ≤ N) ) ์ฟ ํฐ๋ฒˆํ˜ธ c ( 1 ≤ c ≤ d ) N d ..

Algorithm 2020. 4. 4. 00:16