๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (122)

Hello Ocean! ๐ŸŒผ

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์„ ํ˜•, ์ด๋ถ„, ํ•ด์‹œ, BST)

ํƒ์ƒ‰๋ฌธ์ œ? ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋“ค ์ค‘์— ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. 1. ์„ ํ˜• ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Linear Search Algorithm) ๋งจ ์•ž์ด๋‚˜, ๋งจ ๋’ค๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ์ฐพ์•„๋ณด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๊ฐ€์žฅ ๋‹จ์ˆœํ•˜๊ณ  ๊ฐ„๋‹จํ•œ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋งจ ๋๋ถ€ํ„ฐ ํ•˜๋‚˜ํ•˜๋‚˜ ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ์•„๋ณธ๋‹ค. ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ์œผ๋ฉด, ํƒ์ƒ‰์„ ์ข…๋ฃŒํ•œ๋‹ค. ์˜ˆ์‹œ 5๋ฅผ ์ฐพ์„ ๋•Œ, ๋งจ ์™ผ์ชฝ์— ์žˆ๋Š” 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ํ•˜๋‚˜์”ฉ ํƒ์ƒ‰ํ•œ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„ ๊ธธ์ด n์งœ๋ฆฌ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ, ์ตœ์„ ์˜ ๊ฒฝ์šฐ ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๊ฐ€ ์ •๋‹ต์ธ ๊ฒฝ์šฐ : 1๋ฒˆ ์ตœ์•…์˜ ๊ฒฝ์šฐ ๋ฆฌ์ŠคํŠธ์˜ ๋งจ ๋งˆ์ง€๋ง‰ ์›์†Œ๊ฐ€ ์ •๋‹ต์ด๊ฑฐ๋‚˜, ๋ฆฌ์ŠคํŠธ์— ์ •๋‹ต์ด ์—†์„ ๋•Œ : n๋ฒˆ ๋”ฐ๋ผ์„œ O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค. 2. ์ด์ง„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Binary Search Algorithm) ์ค‘๊ฐ„์ง€์ ์„ ๊ธฐ์ค€์œผ..

Algorithm 2020. 8. 31. 19:50
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/C++] H-index , K๋ฒˆ์งธ ์ˆ˜

H-index ์ถœ์ฒ˜ : https://programmers.co.kr/learn/courses/30/lessons/42747 ๋ฌธ์ œ ์„ค๋ช… H-Index๋Š” ๊ณผํ•™์ž์˜ ์ƒ์‚ฐ์„ฑ๊ณผ ์˜ํ–ฅ๋ ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค. ์–ด๋Š ๊ณผํ•™์ž์˜ H-Index๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์ธ h๋ฅผ ๊ตฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์œ„ํ‚ค๋ฐฑ๊ณผ1์— ๋”ฐ๋ฅด๋ฉด, H-Index๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๊ณผํ•™์ž๊ฐ€ ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ nํŽธ ์ค‘, h๋ฒˆ ์ด์ƒ ์ธ์šฉ๋œ ๋…ผ๋ฌธ์ด hํŽธ ์ด์ƒ์ด๊ณ  ๋‚˜๋จธ์ง€ ๋…ผ๋ฌธ์ด h๋ฒˆ ์ดํ•˜ ์ธ์šฉ๋˜์—ˆ๋‹ค๋ฉด h์˜ ์ตœ๋Œ“๊ฐ’์ด ์ด ๊ณผํ•™์ž์˜ H-Index์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ๊ณผํ•™์ž๊ฐ€ ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ์˜ ์ธ์šฉ ํšŸ์ˆ˜๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด citations๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ด ๊ณผํ•™์ž์˜ H-Index๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ ๊ณผํ•™์ž๊ฐ€ ๋ฐœํ‘œํ•œ ๋…ผ๋ฌธ์˜ ์ˆ˜๋Š” 1..

Algorithm 2020. 8. 31. 19:30
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ(์‚ฝ์ž…, ๋ฒ„๋ธ”, ํ€ต)

์ •๋ ฌ (Sort) n๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๋ฅผ ํŠน์ •ํ•œ ๊ธฐ์ค€(์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ ๋“ฑ)์— ๋งž๊ฒŒ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋งค์šฐ ๋‹ค์–‘ํ•œ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์กด์žฌํ•˜๊ณ , ๊ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋งˆ๋‹ค ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ๋‹ค๋ฅด๋‹ค. ์‚ฝ์ž…์ •๋ ฌ k๋ฒˆ์งธ ์›์†Œ๋ฅผ 1๋ถ€ํ„ฐ k-1๊นŒ์ง€์˜ ์ˆซ์ž์™€ ๋น„๊ตํ•ด ์ ์ ˆํ•œ ์œ„์น˜์— ๋ผ์›Œ ๋„ฃ๊ณ , ๊ทธ ๋’ค์˜ ์ž๋ฃŒ๋ฅผ ํ•œ ์นธ์”ฉ ๋’ค๋กœ ๋ฐ€์–ด๋‚ด๋Š” ๋ฐฉ์‹. ์ž๋ฃŒ๊ตฌ์กฐ์— ๋”ฐ๋ผ์„œ ๋’ค๋กœ ๋ฐ€์–ด๋‚ด๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ํด ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด์žˆ์„ ๊ฒฝ์šฐ์— ๋งค์šฐ ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค. ๋ฐ˜๋ฉด์— ์ด๋ฏธ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์— ์ž๋ฃŒ๋ฅผ ํ•˜๋‚˜์”ฉ ์‚ฝ์ž…/์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ตœ๊ณ ์˜ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋œ๋‹ค. ๊ตฌํ˜„์ด ๋งค์šฐ ์‰ฝ๋‹ค. ์ด๋ฏธ์ง€ ์ถœ์ฒ˜ - ๋‚˜๋ฌด์œ„ํ‚ค ์ด์ง„ ์‚ฝ์ž… ์ •๋ ฌ ์ด์ง„ ํƒ์ƒ‰์„ ํ™œ์šฉํ•ด์„œ ์ƒˆ๋กœ์šด ์›์†Œ๊ฐ€ ์œ„์น˜ํ•  ๊ณณ์„ ๋ฏธ๋ฆฌ ์ฐพ์•„์„œ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹ ์›์†Œ ํฌ๊ธฐ ๋น„๊ตํ•˜๋Š” ๋ถ€๋ถ„์„..

Algorithm 2020. 8. 17. 18:40
[์Šคํ„ฐ๋””] ๋น„ํŠธ์กฐ์ž‘ , ์™„์ „ํƒ์ƒ‰

๋น„ํŠธ ์กฐ์ž‘ ๋น„ํŠธ ์—ฐ์‚ฐ์ž AND ๋‘˜ ๋‹ค 1์ด๋ฉด 1, ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ 0์ด๋ฉด 0์ด๋‹ค. 1010 AND 1110 = 1010 ์—ฐ์‚ฐ์ž : & OR ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ 1์ด๋ฉด 1, ๋‘˜๋‹ค 0์ด๋ฉด 0์ด๋‹ค. 1010 OR 1110 = 1110 ์—ฐ์‚ฐ์ž : | NOT ๋ชจ๋“  bit๊ฐ’์„ ๋ฐ˜๋Œ€๋กœ ๋ฐ”๊พผ๋‹ค NOT ( 1010 ) = 0101 ์—ฐ์‚ฐ์ž : ~ XOR ๊ฐ’์ด ๊ฐ™์œผ๋ฉด 0, ๋‹ค๋ฅด๋ฉด 1์ด๋‹ค. 1010 XOR 1110 = 0100 ์—ฐ์‚ฐ์ž : ^ ๋น„ํŠธ ์‹œํ”„ํŠธ ์‚ฐ์ˆ  ์šฐ์ธก ์‹œํ”„ํŠธ ๊ฐ’์„ 2๋กœ ๋‚˜๋ˆˆ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ์—ฐ์‚ฐ์ž : >> ๋ถ€ํ˜ธ ๋น„ํŠธ๋Š” ๋ฐ”๋€Œ์ง€ ์•Š์Œ. ๋…ผ๋ฆฌ ์šฐ์ธก ์‹œํ”„ํŠธ ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„ํŠธ๋ฅผ ์˜ฎ๊ธธ ๋•Œ ์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค. ์—ฐ์‚ฐ์ž : >>> ๋น„ํŠธ๋ฅผ ์šฐ์ธก์œผ๋กœ์˜ฎ๊ธด ํ›„์—, ์ตœ์ƒ์œ„ ๋น„ํŠธ์— 0์„ ๋„ฃ๋Š”๋‹ค. ์ถ”๊ฐ€ ์ •๋ณด 0s : ๋ชจ๋“  bit๊ฐ€ 0 1s : ๋ชจ๋“  bi..

Algorithm 2020. 8. 3. 16:35
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””] ์ž๋ฃŒ๊ตฌ์กฐ_2

1.ํŠธ๋ฆฌ, ๊ทธ๋ž˜ํ”„ ๋น„์„ ํ˜• ๊ตฌ์กฐ ์„ ํ˜•๊ตฌ์กฐ๋Š” ์ž๋ฃŒ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊บผ๋‚ด๋Š” ๊ฒƒ์— ์ดˆ์ ์ด ๋งž์ถฐ์ ธ ์žˆ๊ณ , ๋น„์„ ํ˜•๊ตฌ์กฐ๋Š” ํ‘œํ˜„์— ์ดˆ์ ์ด ๋งž์ถฐ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋ฆฌ ํŠธ๋ฆฌ์˜ ๊ตฌ์„ฑ ์š”์†Œ Root Node : ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ์ตœ์ƒ์œ„์— ์กด์žฌํ•˜๋Š” ๋…ธ๋“œ (A) Node : ํŠธ๋ฆฌ์˜ ๊ตฌ์„ฑ์š”์†Œ์— ํ•ด๋‹นํ•˜๋Š” ์š”์†Œ (A,B,C,D,E,F,G) Edge : ๋…ธ๋“œ์™€ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์„  Terminal Node(Leaf Node) : ํŠธ๋ฆฌ์˜ ๋งจ ๋ฐ‘์— ์žˆ๋Š” ์ž์‹์„ ๊ฐ€์ง€์ง€ ์•Š๋Š” ๋…ธ๋“œ Sub-Tree : ์ „์ฒด ํŠธ๋ฆฌ์— ์†ํ•˜๋Š” ์ž‘์€ ํŠธ๋ฆฌ Level : ํŠธ๋ฆฌ์—์„œ ๊ฐ ์ธต๋ณ„๋กœ ์ˆซ์ž๋ฅผ ๋งค๊น€ (root node = level 0) Height : ํŠธ๋ฆฌ์˜ ์ตœ๊ณ  ๋ ˆ๋ฒจ ํŠธ๋ฆฌ์˜ ์ข…๋ฅ˜ ์ด์ง„ํŠธ๋ฆฌ (binary tree) ์–ด๋–ค ํ•œ ๋…ธ๋“œ๊ฐ€ 2๊ฐœ ์ดํ•˜์˜ ์ž์‹๋งŒ์„ ๊ฐ€์ง€๋Š” ํŠธ๋ฆฌ ํฌํ™”์ด์ง„ํŠธ๋ฆฌ ..

Algorithm 2020. 7. 28. 19:43
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””] ์ž๋ฃŒ๊ตฌ์กฐ_1

๋ฐฐ์—ด ์ •์ ๋ฐฐ์—ด ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฐ์—ด. ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ๋‹ค. ๋™์ ๋ฐฐ์—ด (vector) ์ค‘๊ฐ„์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค. https://blockdmask.tistory.com/70 ์ด ๋งํฌ์—์„œ ๋ฐฐ์—ด์˜ ์‚ฌ์šฉ๋ฒ•์„ ์ž์„ธํ•˜๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ž์—ด ๋ฐฐ์—ด ์—ฌ๋Ÿฌ ๊ธ€์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž ๊ทธ๋ฃน์„ ํ•˜๋‚˜์˜ ์ž๋ฃŒ๋กœ ์ทจ๊ธ‰ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์†์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ ํ˜•์‹. https://blockdmask.tistory.com/338 ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ์—ฐ๊ฒฐ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์ˆœ์ฐจ ์ž๋ฃŒ๊ตฌ์กฐ (ex๋ฐฐ์—ด)๊ณผ ๋‹ฌ๋ฆฌ ์›์†Œ์˜ ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ์™€ ๋ฌผ๋ฆฌ์ ์ธ ์ˆœ์„œ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ์—ฐ์†ํ•œ ๋ฌผ๋ฆฌ์ฃผ์†Œ์— ์˜ํ•ด ์›์†Œ ์ˆœ์„œ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๊ฐ ์›์†Œ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋‹ค์Œ ์›์†Œ์˜ ์ฃผ์†Œ(๋งํฌ)์— ์˜ํ•ด ์ˆœ์„œ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋Š” ๊ตฌํ˜„ ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋…ธ๋“œ ๋‹จ..

Algorithm 2020. 7. 20. 20:05