๋ชฉ๋กAlgorithm (101)

Hello Ocean! ๐ŸŒผ

[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””] ์•Œ๊ณ ์ŠคํŒŸ #PI

๋ฌธ์ œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ ์ „๋žต 8๋‹จ์› ๋ฌธ์ œ. ์›์ฃผ์œจ ์™ธ์šฐ๊ธฐ https://www.algospot.com/judge/problem/read/PI algospot.com :: PI ์›์ฃผ์œจ ์™ธ์šฐ๊ธฐ ๋ฌธ์ œ ์ •๋ณด ๋ฌธ์ œ (์ฃผ์˜: ์ด ๋ฌธ์ œ๋Š” TopCoder ์˜ ๋ฒˆ์—ญ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.) ๊ฐ€๋” TV ์— ๋ณด๋ฉด ์›์ฃผ์œจ์„ ๋ช‡๋งŒ ์ž๋ฆฌ๊นŒ์ง€ ์ค„์ค„ ์™ธ์šฐ๋Š” ์‹ ๋™๋“ค์ด ๋“ฑ์žฅํ•˜๊ณค ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์ด ์ด ์ˆ˜๋ฅผ ์™ธ์šฐ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, ์ˆซ์ž๋ฅผ ๋ช‡ ์ž๋ฆฌ ์ด์ƒ ๋Š์–ด ์™ธ์šฐ๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์€ ์ˆซ์ž๋ฅผ ์„ธ ์ž๋ฆฌ์—์„œ ๋‹ค์„ฏ ์ž๋ฆฌ๊นŒ์ง€๋กœ ๋Š์–ด์„œ ์™ธ์šฐ๋Š”๋ฐ, ๊ฐ€๋Šฅํ•˜๋ฉด 55555 ๋‚˜ 123 ๊ฐ™์ด ์™ธ์šฐ๊ธฐ ์‰ฌ์šด ์กฐ๊ฐ๋“ค์ด ๋งŽ์ด ๋“ฑ์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํƒํ•˜๊ณค ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ, ๊ฐ ์กฐ๊ฐ๋“ค์˜ ๋‚œ์ด www.algospot.com ์ž…๋ ฅ๋œ ์ˆ˜์—ด์€, 3-5์ž๋ฆฌ์”ฉ ๋Š์–ด์„œ ๋‚œ์ด๋„๋ฅผ ํ‰..

Algorithm 2020. 4. 27. 15:31
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””] ๋ฐฑ์ค€ #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
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””]์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต LIS

[๋ฌธ์ œ] ์ฃผ์–ด์ง„ ์ˆ˜์—ด์— ๋Œ€ํ•ด ์ตœ๋Œ€ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด ๊ตฌํ•˜๊ธฐ. ์ตœ๋Œ€ ์ฆ๊ฐ€ ๋ถ€๋ถ„์ˆ˜์—ด์ด๋ž€? - ์›์†Œ๋“ค์ด ์ˆœ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„์ˆ˜์—ด ์ค‘์— ๊ฐ€์žฅ ๊ธด ๊ฒƒ [ํ’€์ด] ๋‚˜์˜ ํ’€์ด n ํฌ๊ธฐ์˜ ์ˆ˜์—ด์— ๋Œ€ํ•ด n*n ํฌ๊ธฐ์˜ ์ด์ฐจ์› cache๋ฅผ ์‚ฌ์šฉํ•˜์ž. ์ด ๋ฌธ์ œ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์œ„์™€ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ถ”๊ฐ€์ ์œผ๋กœ maxCount๋ฅผ ์ƒˆ cache๊ฐ’์„ ๊ณ„์‚ฐํ•ด์„œ ์ €์žฅํ•  ๋•Œ ๋งˆ๋‹ค ๊ฐฑ์‹ ์‹œ์ผœ์•ผ ํ•œ๋‹ค. ๊ทธ ์ด์œ ๋Š”, maxCount๊ฐ€ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ ๊ฒฝ์šฐ์—์„œ ๋‚˜์˜ค์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ex) 5,3,4์˜ ๊ฒฝ์šฐ ์ตœ๋Œ€์ฆ๊ฐ€๋ถ€๋ถ„์ˆ˜์—ด์€ 3,4๊ฐ€ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  cache ๋‚ด๋ถ€์˜ ๊ฐ’์ค‘์—์„œ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ์•„์•ผํ•˜๋Š”๋ฐ ์ด ๊ณผ์ •์„ ๊ณ„์‚ฐํ•  ๋•Œ ํ•œ๋ฒˆ์— ํ•˜๊ธฐ ์œ„ํ•ด์„œ maxCount๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (๋’ค์— ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์ดํ•ด๊ฐ€ ๋” ์ž˜ ๋  ๊ฒƒ์ด๋‹ค.) ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์ข€ ๋” ๋ณต..

Algorithm 2020. 4. 13. 01:33
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””] ์•Œ๊ณ ์ŠคํŒŸ #TRIANGLEPATH

[๋ฌธ์ œ] ์‚ผ๊ฐํ˜• ๋ชจ์–‘์œผ๋กœ ๋ฐฐ์น˜๋œ ์ˆ˜๋“ค์ด ์žˆ๋‹ค. ์ด ์ˆ˜๋“ค์— ๋Œ€ํ•ด์„œ ์œ„์—์„œ๋ถ€ํ„ฐ ์•„๋ž˜๋กœ ๋‚ด๋ ค์˜ค๋Š” ๊ฒฝ๋กœ๋ฅผ ๋งŒ๋“œ๋ ค๊ณ  ํ•œ๋‹ค. ์•„๋ž˜ ์ค„๋กœ ๋‚ด๋ ค๊ฐˆ ๋•Œ ๋งˆ๋‹ค, ๋ฐ”๋กœ ์•„๋žซ์นธ์ด๋‚˜ ํ•œ์นธ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์นธ์œผ๋กœ ๋‚ด๋ ค๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์ง€๋‚˜์˜จ ๊ฒฝ๋กœ์ƒ์˜ ๋ชจ๋“  ์ˆ˜์˜ ํ•ฉ์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•ด๋ผ. [Input] C (testcase ์ˆ˜) ๊ฐ testcase๋งˆ๋‹ค n (์ธต์˜ ๊ฐœ์ˆ˜) n์ค„์— ๊ฑธ์ณ ์‚ผ๊ฐํ˜• ๊ฐ ๊ฐ€๋กœ์ค„์— ์žˆ๋Š” ์ˆซ์ž ์ž…๋ ฅ [Output] ๊ฐ testcase๋งˆ๋‹ค ์ตœ๋Œ€ ๊ฒฝ๋กœ ์ˆซ์ž์˜ ํ•ฉ [ํ’€์ด] ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์œ„์™€ ๊ฐ™๋‹ค. dynamic programming์„ ์‚ฌ์šฉํ•˜๋ฉด, ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด์ง€ ์•Š๊ณ , ๋ฐ”๋กœ ์œ„์— ์นธ๊ณผ์˜ ๊ฒฝ์šฐ์˜์ˆ˜๋งŒ ๊ณ„์‚ฐํ•ด์ฃผ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์žก๋„๋ฅผ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žก๋„๋Š” O(n^2)์ด๋‹ค. ์ข€ ๋” ํฐ input์˜ ์˜ˆ์‹œ๋ฅผ ..

Algorithm 2020. 4. 13. 00:59
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””] ๋ฐฑ์ค€ #1417 ๊ตญํšŒ์˜์›

[๋ฌธ์ œ] ๊ธฐํ˜ธ 1๋ฒˆ์œผ๋กœ ์ถœ๋งˆํ•œ ๋‹ค์†œ์ด๋Š” ์„ ๊ฑฐ ์ „์— ํ›„๋ณด๋ณ„ ๋“ํ‘œ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์†œ์ด๋Š” ๋“ํ‘œ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ์•Œ์•„๋‚ธ ํ›„, ๋‹ค๋ฅธ ํ›„๋ณด๋ฅผ ์ฐ๋Š” ์‚ฌ๋žŒ๋“ค์„ ๋ˆ์œผ๋กœ ๋งค์ˆ˜ํ•ด์„œ ์ž์‹ ์ด ๋‹น์„ ๋˜๊ฒŒ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋‹ค์†œ์ด๊ฐ€ ๋งค์ˆ˜ํ•ด์•ผ ํ•  ์‚ฌ๋žŒ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•ด๋ผ. [Input] N(ํ›„๋ณด์˜ ์ˆ˜) ๋‘˜์งธ ์ค„ ๋ถ€ํ„ฐ ๊ฐ ํ›„๋ณด์˜ ๋“ํ‘œ์ˆ˜๊ฐ€ N์ค„์— ๊ฑธ์ณ์„œ ์ž…๋ ฅ๋œ๋‹ค. [Output] ๋งค์ˆ˜ํ•ด์•ผ ํ•  ์‚ฌ๋žŒ์˜ ์ตœ์†Ÿ๊ฐ’ [ํ’€์ด] ์™„์ „ํƒ์ƒ‰ ์šฐ์„  ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ ‘๊ทผํ•ด๋ณด์ž. ์ „์ฒด ํ›„๋ณด์˜ ๋“ํ‘œ์ˆ˜๊ฐ€ votesNum[] ์•ˆ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค๊ณ  ํ•˜์ž. ํ›„๋ณด๊ฐ€ 3๋ช…์ด๊ณ  ๊ฐ ํ›„๋ณด์˜ ์˜ˆ์ƒ ๋“ํ‘œ์ˆ˜๊ฐ€ 5,7,7์ด์—ˆ๋‹ค๊ณ  ํ•˜์ž. voteNum[]์—์„œ max ์œ„์น˜๋ฅผ ๊ตฌํ•˜๊ณ , ๋‹ค์†œ์ด(๊ธฐํ˜ธ 1๋ฒˆ)๊ฐ€ ์ตœ๋Œ“๊ฐ’์ด ์•„๋‹ ๊ฒฝ์šฐ ํ•ด๋‹น max ์œ„์น˜์—์„œ 1์„ ๋นผ๊ณ , ๊ทธ ํ‘œ๋ฅผ ๋‹ค์†œ..

Algorithm 2020. 4. 11. 18:51