[์ •๋ ฌ] ํž™ ์ •๋ ฌ
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2021. 11. 11. 00:24

ํž™ ํž™์ •๋ ฌ์„ ์ดํ•ดํ•˜๊ธฐ ์ „์— ํž™์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํž™์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„  ๋‹ค์Œ ํฌ์ŠคํŠธ๋ฅผ ํ™•์ธํ•ด๋ณด์ž. https://ybdeveloper.tistory.com/132 ํž™ ์ •๋ ฌ์ด๋ž€? Max Heap, Min Heap์„ ๊ตฌ์„ฑํ•ด ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์„ ์œ„ํ•ด์„œ๋Š” Max Heap, ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ์œ„ํ•ด์„œ๋Š” Min Heap์„ ๊ตฌ์„ฑํ•˜๋ฉด ๋œ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ๋“ค์„ Max Heap์ด๋‚˜ Min Heap ํ˜•ํƒœ๋กœ ์œ ์ง€ํ•œ ์ฑ„ ๋ฃจํŠธ ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฝ‘์•„๋‚ด ์ •๋ ฌ์„ ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ํž™ ์ •๋ ฌ ๊ตฌํ˜„ (๋‚ด๋ฆผ์ฐจ์ˆœ) 1. n๊ฐœ์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋ฐ˜๋ณตํ•œ๋‹ค. O(n) 1-1. ๋ฐฐ์—ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๋ฉฐ Max-Heap ํŠน์„ฑ์„ ๋งŒ์กฑํ•˜๋„๋ก ์กฐ์ •ํ•œ๋‹ค. O(lgn) 2. Max-Heap์— ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๋•Œ ๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฝ‘์•„๋‚ธ๋‹ค. O(..

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

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

[์ •๋ ฌ] ๊ธฐ์ˆ˜ ์ •๋ ฌ
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); } ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•..

LCA(Lowest Common Ancestor) ์•Œ๊ณ ๋ฆฌ์ฆ˜
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2021. 11. 1. 22:44

LCA(Lowest Common Ancestor) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? ๋‘ ๊ฐœ์˜ ๋…ธ๋“œ์˜ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ณตํ†ต๋œ ๋ถ€๋ชจ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งํ•œ๋‹ค. ์–ด๋–ป๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์„๊นŒ? ์œ„์˜ ํŠธ๋ฆฌ์—์„œ 9์™€ 13์˜ ๊ณตํ†ต ๋ถ€๋ชจ๋Š” ๋‘˜์˜ ๋ฐ”๋กœ ์œ„์— ์žˆ๋Š” 2์ด๋‹ค. ๋ฌผ๋ก  9์™€ 13๊ณผ ๊ฐ™์ด ๊ฐ™์€ Level์— ์žˆ๋Š” ๋…ธ๋“œ์ธ ๊ฒฝ์šฐ์— ๋‘ ๋…ธ๋“œ์˜ Level์„ ๋™์‹œ์— ํ•˜๋‚˜์”ฉ ์ค„์—ฌ๊ฐ€๋ฉฐ ์ฐพ์„ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ ๋งŒ์•ฝ ์„œ๋กœ ๋‹ค๋ฅธ Level์— ์žˆ๋Š” ๊ฒฝ์šฐ ๋™์‹œ์— ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ„๋‹ค ํ•œ๋“ค ๊ณตํ†ต ๋ถ€๋ชจ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ Level์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋Š” ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋ฅผ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€๋„๋ก ํ•˜์—ฌ ๊ฐ™์€ Level๋กœ ๋งž์ถฐ์ค˜์•ผ๋งŒ ํ•œ๋‹ค. ์ •๋ฆฌํ•˜์ž๋ฉด, ๋” ๊นŠ์€ Level์— ์žˆ๋Š” ๋…ธ๋“œ์˜ Level์„ ์ค„์—ฌ ์–•์€ Level์— ์žˆ๋Š” ๋…ธ๋“œ์™€ ๋™์ผํ•˜๊ฒŒ ๋งž์ถฐ์ค˜์•ผ ํ•œ๋‹ค. Level๊ณผ ๋ถ€๋ชจ ๋…ธ๋“œ ๊ตฌํ•˜๊ธฐ ์šฐ์„  ..