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

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

DATA101

[์ž๋ฃŒ๊ตฌ์กฐ] ํž™(Heap) ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!(+Python ๊ตฌํ˜„)

๐Ÿ“š ๋ชฉ์ฐจ 1. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ 2. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์–ธ์ œ ์‚ฌ์šฉํ• ๊นŒ? 3. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ข…๋ฅ˜ 4. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๋™์ž‘ ๊ณผ์ •(์ตœ์†Œ ํž™) 4.1. ๋ฐ์ดํ„ฐ ์‚ฝ์ž… 4.2. ๋ฐ์ดํ„ฐ ์‚ญ์ œ 5. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ ๊ตฌํ˜„(Python) 5.1. heapq ์…‹์—… 5.2. ํž™ ๋ฐ์ดํ„ฐ ์‚ฝ์ž…(heappush) 5.3. ํž™ ๋ฐ์ดํ„ฐ ์‚ญ์ œ(heappop) 5.4. ๋ฆฌ์ŠคํŠธ๋ฅผ ํž™์œผ๋กœ ๋ณ€๊ฒฝ(heapify) 1. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๊ฐ€์žฅ ๋†’์€(ํ˜น์€ ๊ฐ€์žฅ ๋‚ฎ์€) ์šฐ์„ ์ˆœ์œ„(e.g., ์ตœ๋Œ“๊ฐ’, ์ตœ์†Ÿ๊ฐ’)๋ฅผ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ *์™„์ „ ์ด์ง„ํŠธ๋ฆฌ(Complete Binary Tree) ๊ธฐ๋ฐ˜์˜ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ€์žฅ ๋†’์€(๋˜๋Š” ๊ฐ€์žฅ ๋‚ฎ์€) ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๊ฐ€ ํ•ญ์ƒ ๋ฃจํŠธ ๋…ธ๋“œ(root node)์— ์˜ค๋Š” ๊ฒŒ ํŠน์ง•์ž…๋‹ˆ๋‹ค. * ์™„..

[์ž๋ฃŒ๊ตฌ์กฐ] ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!(+Python ๊ตฌํ˜„)

๐Ÿ“š ๋ชฉ์ฐจ 1. ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)๋ž€? 2. ํž™(Heap) ์ž๋ฃŒ๊ตฌ์กฐ 2.1. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋ž€? 2.2. ์šฐ์„ ์ˆœ์œ„ ํ ๊ตฌํ˜„ ๋ฐฉ์‹: ๋ฆฌ์ŠคํŠธ vs ํž™ 3. ํž™ ๊ธฐ๋ฐ˜์˜ ์šฐ์„ ์ˆœ์œ„ ํ ๊ตฌํ˜„(Python) 3.1. heapq ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์†Œ๊ฐœ 3.1.1. ํž™ ์›์†Œ ์ถ”๊ฐ€(heappush) 3.1.2. ํž™ ์›์†Œ ์‚ญ์ œ(heappop) 3.1.3. ๋ฆฌ์ŠคํŠธ๋ฅผ ํž™์œผ๋กœ ๋ณ€๊ฒฝ(heapify) 3.2. ํž™ ๊ธฐ๋ฐ˜์˜ ์šฐ์„ ์ˆœ์œ„ ํ ๊ตฌํ˜„ ์˜ˆ์‹œ 1. ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)๋ž€? ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์ถ”์ถœํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ(Queue) ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์„ ์ž…์„ ์ถœ ๋ฐฉ์‹์œผ๋กœ์„œ ๊ฐ€์žฅ ๋จผ์ € ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ํŠน์ง•์ด ์œ ์‚ฌํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋“ค์˜ ..

[์ž๋ฃŒ๊ตฌ์กฐ] ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!(๋…ธ๋“œ, ๊ฐ„์„ , ๋ฃจํŠธ ๋…ธ๋“œ, ๊นŠ์ด, ๋†’์ด, ์ฐจ์ˆ˜)

๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ทธ๋ž˜ํ”„(graph) ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ตฌ์„ฑ ๊ทธ๋ž˜ํ”„๋Š” ๊ทธ๋ฆผ 1 ๊ณผ ๊ฐ™์ด ๋…ธ๋“œ(Node)์™€ ๊ฐ„์„ (Edge)์œผ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋…ธ๋“œ๋Š” ์ •์ (Vertext)์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋…ธ๋“œ์™€ ๊ฐ„์„ ์€ ๊ฐ๊ฐ ๋„์‹œ์™€ ๋„์‹œ๋ฅผ ์ž‡๋Š” ๋„๋กœ๋ฅผ ์˜ˆ์‹œ๋กœ ๋งŽ์ด ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, A ๋„์‹œ(๋…ธ๋“œ)์™€ B ๋„์‹œ(๋…ธ๋“œ)๊ฐ€ ์žˆ์„ ๋•Œ, A ๋„์‹œ์—์„œ B ๋„์‹œ๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด ๋„๋กœ(๊ฐ„์„ )๋ฅผ ๊ฑฐ์นœ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋…ธ๋“œ์™€ ๊ฐ„์„ ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰? ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰์ด๋ž€ ํ•˜๋‚˜์˜ ๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•ด์„œ ๋‹ค๋ฅธ ๋…ธ๋“œ๋“ค์„ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ ์ธ์ ‘? ๋‘ ๋…ธ๋“œ๊ฐ€ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๋ฉด, '๋‘ ๋…ธ๋“œ๋Š” ์ธ์ ‘(Adjacent)ํ•ด ์žˆ๋‹ค'๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ ๊ด€๋ จ ์šฉ์–ด ์ •๋ฆฌ ๊ทธ๋ž˜ํ”„(ํŠธ..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž! (+Python ๊ตฌํ˜„)

๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋‹ค์ด๋‚˜๋ฏน(๋™์ ) ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๐Ÿ“š ๋ชฉ์ฐจ 1. ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€? 2. ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ˆ์ œ 3. ์žฌ๊ท€ํ•จ์ˆ˜ ๊ธฐ๋ฐ˜ ๊ตฌํ˜„ 3.1. ์†Œ์Šค์ฝ”๋“œ 3.2. ๋ฌธ์ œ์  3.2.1. ์—ฐ์‚ฐ ๋ณต์žก์„ฑ 3.2.2. ๋ฌธ์ œ ๋ฐœ์ƒ์˜ ์›์ธ 3.2.3. ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ 4. ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฐ˜ ๊ตฌํ˜„ 4.1. ํƒ‘ ๋‹ค์šด ๋ฐฉ์‹(์žฌ๊ท€ํ•จ์ˆ˜ ํ™œ์šฉ) 4.1.1. ๋ฉ”๋ชจ์ด์ œ์ด์…˜์ด๋ž€? 4.1.2. ์†Œ์Šค์ฝ”๋“œ 4.1.3. ํŠน์ง• 4.2. ๋ฐ”ํ…€ ์—… ๋ฐฉ์‹(๋ฐ˜๋ณต๋ฌธ ํ™œ์šฉ) 4.2.1. ์†Œ์Šค์ฝ”๋“œ 4.2.2. ํŠน์ง• 1. ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€? ๋‹ค์ด๋‚˜๋ฏน(๋™์ ) ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„์–ด ์—ฐ์‚ฐ ์†๋„์™€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ตœ๋Œ€ํ•œ์œผ๋กœ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ํŠน์ • ๊ฐ’์„ ์–ป๊ธฐ ์œ„ํ•ด ๋งค๋ฒˆ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ฐ์‚ฐ์„ ๊ตณ์ด ๋ฐ˜๋ณตํ•ด..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ด์ง„ ํƒ์ƒ‰(Binary Search)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!(+Python ๊ตฌํ˜„)

๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด์ง„ ํƒ์ƒ‰(Binary Search) ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๐Ÿ“š ๋ชฉ์ฐจ 1. ์ด์ง„ ํƒ์ƒ‰์ด๋ž€? 2. ์ด์ง„ ํƒ์ƒ‰์˜ ๋™์ž‘ ๊ณผ์ • 3. ์ด์ง„ ํƒ์ƒ‰์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ 4. ์ด์ง„ ํƒ์ƒ‰ ๊ตฌํ˜„(Python) 1. ์ด์ง„ ํƒ์ƒ‰์ด๋ž€? ์ด์ง„ ํƒ์ƒ‰์€ ํƒ์ƒ‰์˜ ๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์”ฉ ์ขํ˜€๊ฐ€๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ด์ง„ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฆฌ์ŠคํŠธ ๋‚ด ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋А ์ •๋„ ์ •๋ ฌ๋˜์–ด ์žˆ์–ด์•ผ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์ž‘์œ„๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ๊ฑฐ๋‚˜(e.g., 1,000๋งŒ ๊ฐœ ์ด์ƒ) ํƒ์ƒ‰ ๋ฒ”์œ„์˜ ํฌ๊ธฐ๊ฐ€ ๋งค์šฐ ๋„“์„ ๋•Œ(e.g., 1,000์–ต ์ด์ƒ) ํšจ๊ณผ์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. ์ด์ง„ ํƒ์ƒ‰์˜ ๋™์ž‘ ๊ณผ์ • ์ด์ง„ ํƒ์ƒ‰์˜ ๋™์ž‘ ๊ณผ์ •์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ˆœ์ฐจ ํƒ์ƒ‰(..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ˆœ์ฐจ ํƒ์ƒ‰(Sequential Search)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!(+Python ๊ตฌํ˜„)

๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ˆœ์ฐจ ํƒ์ƒ‰(Sequential Search)์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๐Ÿ“š ๋ชฉ์ฐจ 1. ์ˆœ์ฐจ ํƒ์ƒ‰(์ด๋ž€? 2. ๋™์ž‘ ๊ณผ์ • 3. ๊ตฌํ˜„(Python) 4. ์‹œ๊ฐ„ ๋ณต์žก๋„ 1. ์ˆœ์ฐจ ํƒ์ƒ‰์ด๋ž€? ์ˆœ์ฐจ ํƒ์ƒ‰(Sequential Search)์€ ๋ง ๊ทธ๋Œ€๋กœ ๋ฆฌ์ŠคํŠธ ๋‚ด ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์•ž์—์„œ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. 2. ๋™์ž‘ ๊ณผ์ • ์ˆœ์ฐจ ํƒ์ƒ‰์˜ ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ’€์–ด์จ์„œ ๋ณต์žกํ•ด ๋ณด์ด์ง€๋งŒ ๋งจ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ตํ•˜๋Š” ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. 1๏ธโƒฃ ๋งจ ์•ž ๋ฐ์ดํ„ฐ์™€ ์ฐพ์œผ๋ ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ™์€์ง€ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. 2๏ธโƒฃ ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋กœ ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด ๋‹ค์Œ ๋ฐ์ดํ„ฐ์™€ ์ฐพ์œผ๋ ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ™์€์ง€ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. 3๏ธโƒฃ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์ „๊นŒ์ง€ 2๏ธโƒฃ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ ๋‚ด ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋ฌด๋ฆฌ ๋งŽ์•„๋„ ..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ „๋žต!

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

[ํŒŒ์ด์ฌ] ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ์ •๋ ฌํ•˜๊ธฐ! (sorted, sort ํ•จ์ˆ˜)

์˜ค๋Š˜์€ ํŒŒ์ด์ฌ ๋‚ด์žฅ ํ•จ์ˆ˜์ธ sorted()์™€ sort()๋ฅผ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ์ •๋ ฌ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต์œ ํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜์ฃ ! ๋ชฉ์ฐจ 1. ๊ธฐ๋ณธ ์ •๋ ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 2. sorted ํ•จ์ˆ˜ 3. sort ํ•จ์ˆ˜ 4. key ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•œ ์ •๋ ฌ ๊ธฐ์ค€ ์„ค์ • 5. ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1. ๊ธฐ๋ณธ ์ •๋ ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ด์ฌ์—๋Š” sorted ๋ฐ sort๋ผ๋Š” ์ •๋ ฌ ํ•จ์ˆ˜๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋“ค์€ ๋ฆฌ์ŠคํŠธ, ๋”•์…”๋„ˆ๋ฆฌ, ์ง‘ํ•ฉ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋ฐ›๊ณ , ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ด ํ•จ์ˆ˜๋“ค์€ ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋„ O(N*log N) ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๋ณด์žฅํ•œ๋‹ค๋Š” ๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ sorted ํ•จ์ˆ˜์™€ sort ํ•จ์ˆ˜ ๊ฐ๊ฐ์—..

SW ๊ฐœ๋ฐœ/Python 2021. 3. 15. 10:45