๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“š ์ „๊ณต ๊ณต๋ถ€/์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•ด์„ ๋ฐ ์„ค๊ณ„10

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ทธ๋ž˜ํ”„ - ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๊ตฌํ•˜๊ธฐ(cpp) N๊ฐœ์˜ ๋…ธ๋“œ์™€ M๊ฐœ์˜ ์—์ง€๊ฐ€ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„์—์„œ, ์„ธ ๋…ธ๋“œ s, a, t๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ s์—์„œ a๋ฅผ ๋ฐ˜๋“œ์‹œ ์ง€๋‚˜์„œ t๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š” ๊ฐ€์žฅ ์งง์€ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค. ์ฒซ ์ค„์—๋Š” ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ N๊ณผ ์—์ง€์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๋Š” 3 ์ด์ƒ 100 ์ดํ•˜์ด๊ณ , ์—์ง€์˜ ๊ฐœ์ˆ˜๋Š” 0๊ฐœ ์ด์ƒ N(N-1)๊ฐœ ์ดํ•˜์ด๋‹ค. ๋‘๋ฒˆ์งธ ์ค„์—๋Š” ์„ธ ์ •์ˆ˜ s a t๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋…ธ๋“œ๋“ค์€ 0 ์ด์ƒ N ๋ฏธ๋งŒ์ธ ์ •์ˆ˜๋“ค๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ์ด ์„ธ์ •์ˆ˜๋Š” ๊ฐ๊ฐ ์‹œ์ž‘ ๋…ธ๋“œ, ์ค‘๊ฐ„ ๋…ธ๋“œ, ๋„์ฐฉ ๋…ธ๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์„ธ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ ์ด M์ค„์— ์—์ง€ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ํ•œ ์ค„์€ ์—์ง€ ํ•˜๋‚˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์„ธ ์ •์ˆ˜ U V W๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. U๋Š” ์—์ง€์˜ ์‹œ์ž‘ ๋…ธ๋“œ, V๋Š” ์—์ง€์˜ ๋„์ฐฉ ๋…ธ๋“œ, W๋Š” ์—์ง€์˜ ๊ฐ€.. 2023. 4. 11.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์‹คํŒจ ํ•จ์ˆ˜ - ์ค‘๋ณต ์ตœ๋Œ€ ๋ถ€๋ถ„๋ฌธ์ž์—ด(cpp) ์˜์–ด ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ์ตœ๋Œ€ ๊ธธ์ด 1,000์ธ ๋ฌธ์ž์—ด์—์„œ, ๋‘ ๋ฒˆ ์ด์ƒ ๋‚˜์˜ค๋ฉด์„œ ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด, banana์˜ ๊ฒฝ์šฐ ๊ธธ์ด๊ฐ€ 5์ธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์€ banan, anana, ๊ธธ์ด๊ฐ€ 4์ธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์€ bana, anan, nana, ๊ธธ์ด๊ฐ€ 3์ธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์€ ban, ana, nan, ana์ด๋ฏ€๋กœ ana๊ฐ€ 2๋ฒˆ ๋‚˜์˜ค๋ฉด์„œ ๊ฐ€์žฅ ๊ธธ์ด๊ฐ€ ๊ธธ๋‹ค. ๋‹ต์€ ๋”ฐ๋ผ์„œ ์ด ๊ฒฝ์šฐ 3์ด ๋œ๋‹ค. ํžŒํŠธ: ์‹คํŒจํ•จ์ˆ˜๋ฅผ ์ž˜ ์ด์šฉํ•ด๋ณด์ž. ์ž…๋ ฅ ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค. ์ž…๋ ฅ์€ ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์ตœ๋Œ€ ๊ธธ์ด๊ฐ€ 1,000์ธ ์˜์–ด ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด๋‹ค. ์ถœ๋ ฅ ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ์ถœ๋ ฅ์€ ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์—์„œ ๋‘๋ฒˆ ์ด์ƒ ๋‚˜์˜ค๋ฉด์„œ ๊ฐ€์žฅ ๊ธธ์ด๊ฐ€ ๊ธด ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜.. 2023. 4. 11.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ฌธ์ž์—ด ๋‹ค๋ฃจ๊ธฐ - ๋กœ๋งˆ์ˆซ์ž(cpp) ๋กœ๋งˆ์ธ๋“ค์€ ๋กœ๋งˆ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. 1์€ I, 5๋Š” V, 10์€ X๋กœ ํ‘œํ˜„ํ–ˆ๊ณ , I, V, X๊ฐ€ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์€ ๊ฐ ๊ธ€์ž๊ฐ€ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜์˜ ํ•ฉ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด XVI = 10 + 5 + 1 = 16์ด๋‹ค. ๋‹จ, IV๋Š” 4์ด๊ณ  IX๋Š” 9์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด IVI = 4 + 1 = 5์ด๋‹ค. ์œ„์˜ ์˜ˆ์™ธ์— ์ถ”๊ฐ€๋กœ, IIV๋Š” 3์ด๊ณ  IIX๋Š” 8์ด๋ผ๊ณ  ํ•˜์ž. ๋ฐ˜๋“œ์‹œ IIV, IIX๋Š” 3, 8์ด์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰ IIV๋Š” 1 + 1 + 5 = 7๋„ ์•„๋‹ˆ๊ณ , 1 + 4 = 5๋„ ์•„๋‹ˆ๊ณ , ๋ฐ˜๋“œ์‹œ 3์ด์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ตœ๋Œ€ ๊ธธ์ด๊ฐ€ 10์ธ ๋กœ๋งˆ ์ˆซ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์งˆ ๋•Œ ์ด ๋ฌธ์ž์—ด์ด ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค. ์ตœ๋Œ€ ๊ธธ์ด๊ฐ€ 10์ธ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง€๊ณ , ์ด ๋ฌธ์ž์—ด์€ I, .. 2023. 4. 11.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] DP - ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ(cpp) N๋‹จ์˜ ๊ณ„๋‹จ์ด ์žˆ๊ณ , ํ•œ๋ฒˆ์— ๊ณ„๋‹จ์„ ํ•œ ๋‹จ ๋˜๋Š” ๋‘ ๋‹จ์„ ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ์ตœ๋Œ€ ๋‘ ๊ตฐ๋ฐ์˜ ๊ณ„๋‹จ์—๋Š” ์žฅ์• ๋ฌผ์ด ์žˆ์–ด์„œ ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์—†๋‹ค. ์ด ๋•Œ N๋‹จ๊นŒ์ง€ ์˜ฌ๋ผ๊ฐ€๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ํ‘œ์ค€์ž…๋ ฅ์œผ๋กœ ์„ธ ์ •์ˆ˜ N A B๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. N์€ ๊ณ„๋‹จ์˜ ๋‹จ์ˆ˜๋กœ, 1 ์ด์ƒ 30 ์ดํ•˜์ด๋‹ค. A์™€ B๋Š” ์žฅ์• ๋ฌผ์ด ์žˆ๋Š” ๊ณ„๋‹จ์˜ ์œ„์น˜์ด๋‹ค. A์™€ B๋Š” 0 ์ด์ƒ N ์ดํ•˜์ธ ์ˆ˜์ด๋ฉฐ, A์™€ B๊ฐ€ ๊ฐ™์„ ์ˆ˜ ์žˆ๋‹ค. A, B ๊ฐ’์ด 0์ด๋ผ๋ฉด, ์ด๋Š” ์žฅ์• ๋ฌผ์ด ์—†๋‹ค๋Š” ๋œป์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด N, A, B๊ฐ€ 3, 0, 1์ด๋ผ๊ณ  ์ฃผ์–ด์ง€๋ฉด ์ด 3๋‹จ์˜ ๊ณ„๋‹จ์ด ์žˆ๊ณ , ์žฅ์• ๋ฌผ์€ 1๋‹จ์—๋งŒ ์žˆ๋‹ค. ์กฐ๊ธˆ ๋” ์ƒ๊ฐํ•ด๋ณด๋ฉด N, A, B๊ฐ€ 3, 1, 0์œผ๋กœ ์ฃผ์–ด์ ธ๋„ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ถœ๋ ฅ ํ‘œ์ค€์ถœ๋ ฅ์œผ๋กœ ํ•˜๋‚˜์˜ ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅ.. 2023. 4. 11.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] Greedy algorithm - ์ด์ง‘ํŠธ ๋‚˜๋ˆ—์…ˆ(cpp) ๋ฌธ์ œ ์ด์ง‘ํŠธ ๋‚˜๋ˆ—์…ˆ์„ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ p/q๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ์ •์ˆ˜ p, q๊ฐ€ ์‚ฌ์ด์— ๊ณต๋ฐฑ์„ ํ•˜๋‚˜ ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. p๋Š” 1 ์ด์ƒ 1,000 ์ดํ•˜, q๋Š” p+1 ์ด์ƒ 2,000 ์ดํ•˜์ธ ์ •์ˆ˜ ์ถœ๋ ฅ ์ˆ˜์—… ์‹œ๊ฐ„์— ๋ฐฐ์šด ์ด์ง‘ํŠธ ๋‚˜๋ˆ—์…ˆ์˜ ๊ฒฐ๊ณผ๋กœ ๋ช‡ ๊ฐœ์˜ ๋ถ„์ˆ˜๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 5/6์€ 1/2 + 1/3์ด๋ฏ€๋กœ 2๊ฐœ์˜ ๋ถ„์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ 1 5 6 ์˜ˆ์ œ ์ถœ๋ ฅ 1 2 ์˜ˆ์ œ ์ž…๋ ฅ 2 19 20 ์˜ˆ์ œ ์ถœ๋ ฅ 2 4 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—…์˜ ์ฒซ ๊ณผ์ œ์˜€๋‹ค. ์ด์ง‘ํŠธ ๋‚˜๋ˆ—์…ˆ์ด๋ž€, ์œ ๋ฆฌ์ˆ˜ p/q๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ๋ถ„์ž๊ฐ€ 1์ธ ๋ถ„์ˆ˜๋“ค์˜ ํ•ฉ์œผ๋กœ p/q๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ) 5/6 = 1/2 + 1/3 , 3/4 = 1/2 + 1/4 ์š•์‹ฌ์Ÿ์ด ๊ธฐ๋ฒ•, ํ”ํžˆ Greedy ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์ดํ•  .. 2023. 2. 9.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ์˜ ์ตœ์ ์„ฑ ์ •๋ ฌ์˜ ์ตœ์ ์„ฑ ์•ž์—์„œ ์šฐ๋ฆฌ๋Š” ์—ฐ์†ํ•œ ๋‘ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด, O(n2) ๋ณด๋‹ค ์ข‹์€ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์–ป์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์˜€๋‹ค. ๊ทธ ๋‹ค์Œ์— ๋ฐฐ์šด ์ •๋ ฌ ๋ฐฉ์‹์ธ ํ€ต์ •๋ ฌ, ๋ณ‘ํ•ฉ์ •๋ ฌ, ํž™์ •๋ ฌ ์—์„œ๋Š” ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ๋‘ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ตํ™˜ํ•จ์œผ๋กœ์จ ์ด๋ณด๋‹ค ๋น ๋ฅธ ์‹œ๊ฐ„ ๋ณต์žก๋„์ธ O(n log n) ์‹œ๊ฐ„์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ œ ์šฐ๋ฆฌ๊ฐ€ ๋‹ค์‹œ ๋น„์Šทํ•œ ์งˆ๋ฌธ์„ ํ•ด๋ณด์ž. O(n log n)๋ณด๋‹ค ๋” ๋น ๋ฅด๊ฒŒ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒ ๋Š”๊ฐ€? ์ •๋ฆฌ. ๋‘ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ตํ™˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ๋Š” O(n log n)๋ณด๋‹ค ๋” ๋น ๋ฅด๊ฒŒ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค. ์ฆ๋ช…. ์˜์‚ฌ ๊ฒฐ์ • ํŠธ๋ฆฌ(decision tree)๋Š” ์–ด๋–ค ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ ํŒ๋‹จ์„ ๋‚ด๋ฆฌ๋Š” ๊ณผ์ •์„ ํŠธ๋ฆฌ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ๋ฃจํŠธ๋Š” ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋Š” ์ง€์ ์ด๋‹ค. ๋ฃจํŠธ๋ฅผ.. 2023. 1. 16.
728x90
๋ฐ˜์‘ํ˜•