๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (213)

JiYoung Dev ๐Ÿ–ฅ

[ํŒŒ์ด์ฌ] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŒจ๋Ÿฌ๋‹ค์ž„ : Divide and Conquer (ํ•ฉ๋ณ‘ ์ •๋ ฌ, ํ€ต ์ •๋ ฌ)

2023.02.25 ~ 2023.02.26 ์ฝ”๋“œ์ž‡ ํ•™์Šต๋‚ด์šฉ ๐Ÿ”Ž Divide and Conquer ๋ถ„ํ•  ์ •๋ณต ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜(Divide and Conquer algorithm)์€ ๊ทธ๋Œ€๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜. ํ€ต ์ •๋ ฌ์ด๋‚˜ ํ•ฉ๋ณ‘ ์ •๋ ฌ๋กœ ๋Œ€ํ‘œ๋˜๋Š” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์™€ ์ด์ง„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ํ–‰๋ ฌ ๊ณฑ์…ˆ ๋“ฑ์ด ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉ ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ณดํ†ต ์žฌ๊ท€ ํ•จ์ˆ˜(recursive function)๋ฅผ ํ†ตํ•ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ตฌํ˜„๋จ. ๋”ฐ๋ผ์„œ ๋ถ„ํ•  ์ •๋ณต์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์žฌ๊ท€ ๊ฐœ๋…์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์šฐ์„ ํ•จ. function F(x) : # base case if F(x)์˜ ๋ฌธ์ œ๊ฐ€ ๊ฐ„๋‹จ: return F(x)์„ ์ง์ ‘ ๊ณ„์‚ฐํ•œ ๊ฐ’ # ์žฌ๊ท€ํ•จ์ˆ˜ x๋ฅผ y1๊ณผ y2๋กœ ๋ถ„ํ•  F..

python 2023. 2. 26. 18:49
[ํŒŒ์ด์ฌ] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŒจ๋Ÿฌ๋‹ค์ž„ : Brute Force

2023.02.24 ์ฝ”๋“œ์ž‡ ํ•™์Šต๋‚ด์šฉ ๐Ÿ”Ž ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŒจ๋Ÿฌ๋‹ค์ž„(algorithm paradigm) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ์Œ. ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋‹ค ๋ณด๋ฉด ํ•ด๊ฒฐ ๊ณผ์ •์ด ๋น„์Šทํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ๊ฒƒ์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŒจ๋Ÿฌ๋‹ค์ž„์ด๋ผ๊ณ  ํ•จ. ์ฆ‰, ์–ด๋– ํ•œ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•œ ์ผ๋ฐ˜์ ์ธ ์ ‘๊ทผ๋ฒ• ํ˜น์€ ๋ฐฉ๋ฒ•๋ก . ๋ช‡ ๊ฐ€์ง€ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŒจ๋Ÿฌ๋‹ค์ž„์ด ์žˆ์œผ๋ฉฐ, ๊ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•œ ์ž์‹ ๋งŒ์˜ ๊ธฐ์ˆ ๊ณผ ๋„๊ตฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ. ๋˜ํ•œ, ํ•˜๋‚˜์˜ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŒจ๋Ÿฌ๋‹ค์ž„์œผ๋กœ ํ•œ ๋ฌธ์ œ์— ์ ‘๊ทผํ•  ์ˆ˜๋„ ์žˆ์Œ. ๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŒจ๋Ÿฌ๋‹ค์ž„ 1. Greedy Algorithms 2. Divide and Conquer 3. Dynamic Programming 4. Backtrack..

python 2023. 2. 24. 20:49
๋งŒ์ผ ๋‚ด๊ฐ€ ์ธ์ƒ์„ ๋‹ค์‹œ ์‚ฐ๋‹ค๋ฉด - ๊น€ํ˜œ๋‚จ

๋‚˜๋Š” ์—์„ธ์ด๋ฅผ ๊ทธ๋‹ค์ง€ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ž๊ธฐ๊ณ„๋ฐœ์„œ ๋˜ํ•œ. ์ €์ž์˜ ๊ฒฝํ—˜์ด ๋‹ด๊ธด ๋‚ด์šฉ๋ณด๋‹ค๋Š” ์ด๋ก ์ด๋‚˜ ์ง€์‹์ด ๋‹ด๊ธด ์ฑ…์„ ๋” ์ข‹์•„ํ•˜๊ณ , ์•„๋‹ˆ๋ฉด ๋งˆ์Œ๊ป ์ƒ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์†Œ์„ค๋ฅ˜๋ฅผ ์ข‹์•„ํ•œ๋‹ค. ์ด ์ฑ…์€ ์ง€๊ธˆ์€ ๋ฐ”๋€Œ์—ˆ์ง€๋งŒ ๋ช‡ ์ผ ์ „๊นŒ์ง€๋งŒ ํ•ด๋„ ๋ฐ€๋ฆฌ์˜ ์„œ์žฌ์—์„œ ์„œ์  ๋ฒ ์ŠคํŠธ 1์œ„์— ์˜ฌ๋ผ์™€์žˆ๋˜ ์ฑ…์ด๋‹ค. ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์ง€๊ธˆ๋„ 3์œ„์— ๋จธ๋ฌผ๋Ÿฌ ์žˆ๋‹ค. ๊ณ„์† ์ˆœ์œ„๊ถŒ์— ์žˆ๋Š” ์ฑ…์ด๋ผ ๋ˆˆ์—๋Š” ๋“ค์–ด์˜ค๋Š”๋ฐ ์ œ๋ชฉ๊ณผ ํ‘œ์ง€๋งŒ ๋ดค์„ ๋•Œ๋Š” ๋ญ”๊ฐ€ ์ฝ๊ธฐ๋Š” ์‹ซ์€... ๊ทธ๋ž˜์„œ ํ•œ๋™์•ˆ ์ฝ์ง€ ์•Š์•˜์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ตœ๊ทผ์— ์‹œ๊ฐ„์ด ์ข€ ์ƒ๊ธฐ๋ฉด์„œ ๋‹ค์–‘ํ•œ ์ฑ…์„ ๋งŽ์ด ์ฝ์–ด๋ณด์ž๋Š” ์ƒ๊ฐ์„ ํ–ˆ๊ณ , ์ˆœ์œ„๊ถŒ์— ๋“ค์–ด์žˆ๋Š” ์ฑ…์€ ๋ชจ๋‘ ๋ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ์ฑ…์„ ์ฝ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ์ฑ…์ด ๋ฒ ์ŠคํŠธ์— ์žˆ๋Š” ์ด์œ ๊ฐ€ ์žˆ๋”๋ผ. ์ •๋ง ์ฝ์œผ๋ฉด์„œ ์งง์€ ์ธ์ƒ์„ ์‚ด์•˜์ง€๋งŒ ๋‚ด๊ฐ€ ์‚ด๋ฉด์„œ ์–ด๋ ดํ’‹์ด ๋Š..

books 2023. 2. 23. 20:46
[ํŒŒ์ด์ฌ] ์•Œ๊ณ ๋ฆฌ์ฆ˜(algorithm) / ์„ ํ˜• ํƒ์ƒ‰ / ์ด์ง„ ํƒ์ƒ‰ / ์„ ํƒ ์ •๋ ฌ / ์‚ฝ์ž… ์ •๋ ฌ / ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ‰๊ฐ€ - ์‹œ๊ฐ„ ๋ณต์žก๋„ & Big-O ์ ๊ทผํ‘œ๊ธฐ๋ฒ•

2023.02.22 ~ 2023.02.23 ์ฝ”๋“œ์ž‡ ํ•™์Šต๋‚ด์šฉ ๐Ÿ”Ž ์•Œ๊ณ ๋ฆฌ์ฆ˜(algorithm) ์ˆ˜ํ•™๊ณผ ์ปดํ“จํ„ฐ๊ณผํ•™, ์–ธ์–ดํ•™ ๋˜๋Š” ์—ฎ์ธ ๋ถ„์•ผ์—์„œ ์–ด๋– ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ •ํ•ด์ง„ ์ผ๋ จ์˜ ์ ˆ์ฐจ ๊ณ„์‚ฐ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ๊ณ„์  ์ ˆ์ฐจ๋ฅผ ์˜๋ฏธํ•˜๊ธฐ๋„ ํ•จ ์ฆ‰, ๋ฌธ์ œ ํ’€์ด์— ํ•„์š”ํ•œ ๊ณ„์‚ฐ์ ˆ์ฐจ ๋˜๋Š” ์ฒ˜๋ฆฌ ๊ณผ์ •์˜ ์ˆœ์„œ๋ฅผ ๋œปํ•จ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์—ฐ์‚ฐ, ๋ฐ์ดํ„ฐ ๋งˆ์ด๋‹(๊ธฐ๊ณ„ ํ•™์Šต) ๋˜๋Š” ์ž๋™ํ™”๋œ ์ถ”๋ก ์„ ์ˆ˜ํ–‰ ์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•„๋ž˜ ๋‘ ๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•จ 1. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ 2. ๋ฌธ์ œ๋ฅผ ๋” ์ž˜ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๐Ÿ”Ž ์ปดํ“จํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ปดํ“จํ„ฐ๊ฐ€ ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ •๋ฆฌ๋˜์–ด ์žˆ๋Š” ์ผ๋ จ์˜ ๊ณผ์ • ํ˜น์€ ๋ฐฉ๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„ํ•  ๋•Œ ์‹œ๊ฐ„๊ณผ ๊ณต๊ฐ„ ๋ณต์žก์„ฑ์„ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•จ ๐Ÿ“– ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… ๋“ฃ๊ธฐ ์ „ ๋ณต์Šต โš™ ํŒฐ๋ฆฐ๋“œ..

python 2023. 2. 23. 18:14
[ํŒŒ์ด์ฌ] ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ ๋‚ด์šฉ ์ •๋ฆฌ ๋ฐ ์š”์•ฝ

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ ๋„์—„๋„์—„ ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค ๋ณด๋‹ˆ ๊ฐ๊ฐ์˜ ๋‚ด์šฉ์ด ๋จธ๋ฆฟ์†์— ํฉ์–ด์ ธ ์žˆ์–ด ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๋‚ด๊ฐ€ ๋ฐฐ์šด ๋‚ด์šฉ์€ ๊ธฐ์ดˆ์ ์ธ ๋‚ด์šฉ์ด๋ฏ€๋กœ ์ถ”ํ›„ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋  ๋‚ด์šฉ์€ ๊ณต๋ถ€ ํ›„์— ๋‹ค์‹œ ์ •๋ฆฌํ•ด์„œ ์—…๋กœ๋“œ ํ•ด๋ณด๊ฒ ๋‹ค. โ€ป ์ฃผ์˜์ ์€ ๋‚ด๊ฐ€ ๋“ค์€ ๊ฐ•์˜, ๋ธ”๋กœ๊ทธ ์ž๋ฃŒ ๋“ฑ์„ ๋ชจ์•„ ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋‚˜์˜ ์ƒ๊ฐ์„ ์ž‘์„ฑํ•œ ๋‚ด์šฉ์ด๋ฏ€๋กœ ์ž‘์„ฑํ•œ ๋‚ด์šฉ ์ค‘ ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํŒŒ์ด์ฌ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ ๋‚ด์šฉ ์ •๋ฆฌ์˜ ์‹œ์ž‘์€ ์•„๋ž˜์˜ ๋ฌธ์žฅ์œผ๋กœ ์‹œ์ž‘ํ•ด๋ณด๋ ค ํ•œ๋‹ค. ํŒŒ์ด์ฌ์€ ์ˆœ์ˆ˜ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. ์ด ๋ฌธ์žฅ์˜ ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ๋จผ์ € ์•Œ์•„์•ผ ํ•  ๊ฒƒ์€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์ด๋ฉฐ, ๊ทธ ์•ˆ์—์„œ ๋˜ ๊ฐ์ฒด๋ž€ ๋ฌด์—‡์ธ์ง€๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ด์— ๋Œ€ํ•ด ์ดํ•ด๋ฅผ ์‹œ์ž‘ํ•ด..

python 2023. 2. 22. 16:50