[์ž๋ฃŒ๊ตฌ์กฐ] ํž™
Computer Science/์ž๋ฃŒ๊ตฌ์กฐ 2021. 11. 9. 22:20

์šฐ์„ ์ˆœ์œ„ ํ๋ž€? ์šฐ์„ ์ˆœ์œ„์˜ ๊ฐœ๋…์„ ํ์— ๋„์ž…ํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ๋“ค์ด ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ„๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ๋ฐฐ์—ด, ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ, ํž™ ์œผ๋กœ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด ์ค‘์—์„œ ํž™(heap)์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํšจ์œจ์ ์ด๋‹ค. ํž™์ด๋ž€? ์™„์ „์ด์ง„ํŠธ๋ฆฌ ๊ตฌ์กฐ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ๋ฝ‘์•„๋‚ผ ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ํž™์€ ์™„์ „ํžˆ ์ •๋ ฌ๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ Level์— ๋”ฐ๋ฅธ ์ •๋ ฌ๋งŒ ์ด๋ฃจ์–ด์ ธ ๋Š์Šจํ•œ ์ •๋ ฌ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค. (Max Heap์ธ ๊ฒฝ์šฐ ๋ถ€๋ชจ๊ฐ€ ์ž์‹๋ณด๋‹ค ํฐ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , Min Heap์ธ ๊ฒฝ์šฐ ๋ถ€๋ชจ๊ฐ€ ์ž์‹๋ณด๋‹ค ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•จ) ํž™์˜ ์ข…๋ฅ˜ Max Heap ๋ฃจํŠธ ๋…ธ๋“œ์—๋Š” ํ•ญ์ƒ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด ์œ„์น˜ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์ž์‹ ๋…ธ๋“œ๋“ค๋ณด๋‹ค ๋ฌด์กฐ๊ฑด ๊ฐ’์ด ์ปค์•ผํ•œ๋‹ค. M..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] *๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2021. 11. 8. 22:29

๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ญ˜๊นŒ? ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ํ•˜๋‚˜์˜ ์ถœ๋ฐœ์ ์—์„œ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋„์ฐฉ์ ์— ๋Œ€ํ•œ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋Œ€์‹  ์กฐ๊ฑด์ด ์žˆ๋Š”๋ฐ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ„์„ ๋“ค์˜ ๋น„์šฉ์ด ๋ชจ๋‘ ์–‘์ˆ˜์—ฌ์•ผ๋งŒ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋งŒ์•ฝ ์Œ์˜ ๋น„์šฉ์„ ๊ฐ€์ง„ ๊ฐ„์„ ์ด ์กด์žฌํ•œ๋‹ค๋ฉด ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์—†๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ฉ”์ธ ์•„์ด๋””์–ด๋Š” ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP)์ด๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ธฐ์กด์— ๊ตฌํ•ด๋†“์€ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐฑ์‹ ํ•ด๋‚˜๊ฐ€๋Š” ๋ฉ”์ธ ์•„์ด๋””์–ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. (์ตœ๋‹จ ๊ฒฝ๋กœ๋Š” ์ตœ๋‹จ ๊ฒฝ๋กœ๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค) ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žก๋„ (์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณผ ๊ฒƒ) ์›๋ž˜ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ O(V^2)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์ง€..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] Anomaly (์ด์ƒ)
Computer Science/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 2021. 11. 7. 19:44

ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ์ •๊ทœํ™”๋ฅผ ํ•ด์•ผํ•˜๋Š” ์ด์œ ๋Š” Anomaly(์ด์ƒ ํ˜„์ƒ)์ด ๋‚˜ํƒ€๋‚˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์‚ฝ์ž… ์ด์ƒ ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ์ €์žฅํ•˜์ง€ ์•Š๊ณ ์„œ๋Š” ์–ด๋–ค ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ Faculty and Courses ํ…Œ์ด๋ธ”์— Course Code๊ฐ€ ์—†๋Š” Faculty์ธ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ์‚ฝ์ž…ํ•ด์•ผ ํ• ๊นŒ? → ์—†์Œ์„ ํ‘œ์‹œํ•˜๋Š” ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ์‚ฝ์ž… ๋˜์–ด์•ผํ•จ! ๊ฐฑ์‹  ์ด์ƒ ์ผ๋ถ€๋งŒ ๋ณ€๊ฒฝํ•˜์—ฌ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถˆ์ผ์น˜ ํ•˜๋Š” ๊ฒฝ์šฐ ๊น€์‚ฌ๋ž‘ → ๊น€์†Œ์—ฐ์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ๊น€์‚ฌ๋ž‘์ด ๊น€์†Œ์—ฐ์œผ๋กœ ๋ฐ”๋€Œ์–ด์•ผ๋งŒ ํ•œ๋‹ค. → ์ฒซ๋ฒˆ์งธ ํŠœํ”Œ๊ณผ ์„ธ๋ฒˆ์งธ ํŠœํ”Œ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ๋ฐœ์ƒ ์‚ญ์ œ ์ด์ƒ ํŠœํ”Œ ์‚ญ์ œ๋กœ ์ธํ•ด ๊ผญ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ํ•จ๊ป˜ ์‚ญ์ œ๋˜๋Š” ๊ฒฝ์šฐ ENG-206 ๊ฐ•์˜๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๊ณ  389๋ฒˆ ํŠœํ”Œ์„ ์ œ๊ฑฐํ–ˆ๋”๋‹ˆ Dr.Giddens์˜ ์ •๋ณด๋„ ์‚ญ์ œ๋˜์—ˆ๋‹ค. → ๊ผญ..

[์ •๋ ฌ] ๊ธฐ์ˆ˜ ์ •๋ ฌ
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2021. 11. 7. 01:00

๊ธฐ์ˆ˜ ์ •๋ ฌ์ด๋ž€? ๋‚ฎ์€ ์ž๋ฆฌ์ˆ˜๋ถ€ํ„ฐ ๋น„๊ตํ•˜์—ฌ ์ •๋ ฌํ•ด๊ฐ€๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ฉฐ ๋น„๊ต ์—ฐ์‚ฐ์ด ๋ถˆํ•„์š”ํ•œ ์ •๋ ฌ์ด๋‹ค. ์ž๋ฆฟ์ˆ˜์— ํ•ด๋‹น๋˜๋Š” ๊ฐ’์— ๋”ฐ๋ผ ๋ฒ„ํ‚ท์— ๋ฐ์ดํ„ฐ๋“ค์„ ์‚ฝ์ž…ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„๊ต ์—ฐ์‚ฐ์ด ๋ถˆํ•„์š”ํ•˜์ง€๋งŒ ์ž๋ฆฟ์ˆ˜๋งŒํผ์˜ ์ถ”๊ฐ€์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค. (๋˜ํ•œ ์ž๋ฆฟ์ˆ˜๋งŒํผ์˜ ์ถ”๊ฐ€์ ์ธ ๋กœ์ง๋„ ํ•„์š”ํ•˜๋‹ค) ์ž๋ฆฟ์ˆ˜๊ฐ€ ๋น„์ •์ƒ์ ์œผ๋กœ ํฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ์“ธ๋ฐ์—†๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๋ฅผ ์ฐจ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ตฌํ˜„๊ณผ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ž๋ฐ”๋ฅผ ์ด์šฉํ•œ ๊ตฌํ˜„ public static void main(String[] args) { RadixSort radixSort = new RadixSort(); for(int i=0; i

GCD(์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜), LCM(์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜) ๊ตฌํ•˜๊ธฐ
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2021. 11. 2. 22:19

์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ ์œ ํด๋ฆฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜(GCD)๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, gcd(a,b)์™€ (r=a%b๋ผ๊ณ  ํ•  ๋•Œ), gcd(b,r)์˜ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๋Š” ๊ฐ™๋‹ค. ์ฆ‰, gcd(a,b) == gcd(b,r)์ด๋‹ค. ์ด ์„ฑ์งˆ์— ๋”ฐ๋ผ gcd(a,b) == gcd(b, a%b) == gcd(a%b, (a%b)%b).... ๋ฐ˜๋ณตํ•˜์—ฌ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋˜์—ˆ์„ ๋•Œ ๋‚˜๋‰˜์–ด์ง€๋Š” ์ˆ˜๊ฐ€ a์™€ b์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๊ฐ€ ๋œ๋‹ค. ์ •๋ฆฌํ•˜์ž๋ฉด gcd(a,b) -> cdg(a, a%b) .... -> gcd(x, 0)์ด๋ฉด a์™€ b์˜ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๋Š” x์ด๋‹ค. ๊ตฌํ˜„ private static int gcd(int a, int b) { if(b == 0) return a; return gcd(b, a%b); } ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•..