[์ •๋ ฌ] 8. ํ•œ ์‚ด๋„ ์ดํ•ดํ•˜๋Š” ๊ณ„์ˆ˜ ์ •๋ ฌ(Counting Sort)

๊ณ„์ˆ˜ ์ •๋ ฌ : ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์˜ ๊ฐ’์˜ ๋ฒ”์œ„๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ ๋น ๋ฅธ ์†๋„๋ฅผ ๊ฐ–๋Š” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ตœ๋Œ“๊ฐ’๊ณผ ์ž…๋ ฅ ๋ฐฐ์—ด์˜ ์›์†Œ ๊ฐ’ ๊ฐœ์ˆ˜๋ฅผ ๋ˆ„์ ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑํ•œ ๋ฐฐ์—ด๋กœ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์šฐ์„ , ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ nums = [5, 9, 3, 6, 9, 5, 2, 10, 1] ์ด๋ผ๋Š” ๋ฐฐ์—ด์ด ์ž…๋ ฅ๋˜์—ˆ๊ณ , ์ด nums ๋ฐฐ์—ด์„ ์ •๋ ฌํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž. ์นด์šดํŒ… ์ •๋ ฌ์˜ ๋‹จ๊ณ„ 0. ์ •๋ ฌํ•  nums ๋ฐฐ์—ด ์ž…๋ ฅ 1. count ๋ฐฐ์—ด ์ƒ์„ฑ - ์ž…๋ ฅ๋œ nums ๋ฐฐ์—ด์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ธธ์ด๋กœ ๊ฐ–๋Š” count ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค. - ๊ฐ ์›์†Œ๊ฐ€ nums ๋ฐฐ์—ด์— ๋ช‡ ๋ฒˆ ๋‚˜์˜ค๋Š”์ง€ ํšŸ์ˆ˜๋ฅผ count ๋ฐฐ์—ด์— ๊ธฐ๋กํ•œ๋‹ค. 2. ์ด์ „๊นŒ์ง€์˜ ๋ˆ„์ ๊ฐœ์ˆ˜๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๋ฐฐ์—ด ์ƒ์„ฑ(cumCount ๋ฐฐ์—ด) - count ๋ฐฐ์—ด์—์„œ ๊ฐ ์›์†Œ๊ฐ€ ๋ช‡ ๊ฐœ์”ฉ ๋‚˜์˜ค๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, - ์ด๋ฅผ ์ด์šฉ..

[์ •๋ ฌ] 7. ํ•œ ์‚ด๋„ ์ดํ•ดํ•˜๋Š” ๊ธฐ์ˆ˜ ์ •๋ ฌ(radix sort)

๊ธฐ์ˆ˜ ์ •๋ ฌ : ์ฃผ์–ด์ง„ ์ˆ˜ ๋“ค๊ฐ„์˜ ๋น„๊ต๋ฅผ ํ•˜์ง€ ์•Š๊ณ  ๋ฒ„ํ‚ท์„ ์‚ฌ์šฉํ•ด ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ๋‚ฎ์€ ์ž๋ฆฌ(1์˜ ์ž๋ฆฌ)์—์„œ ๋†’์€ ์ž๋ฆฌ(10^n ์ž๋ฆฌ) ์ˆœ์œผ๋กœ ๋ฒ„ํ‚ท์— ๋„ฃ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. ์‹ค์ œ๋กœ ์ˆซ์ž๋“ค ๊ฐ„์˜ ๋น„๊ต๋ฅผ ํ†ตํ•ด ์ •๋ ฌ์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, 0~9๊นŒ์ง€์˜ ๋ฒ„ํ‚ท์ด ์žˆ๊ณ  ์ด ๋ฒ„ํ‚ท์— ์ˆซ์ž๋ฅผ ๋„ฃ์–ด๊ฐ€๋ฉฐ ๋ถ„๋ฅ˜ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„ O(r*n) : r์€ ์ˆซ์ž์˜ ์ž๋ฆฟ์ˆ˜, n์€ ์ •๋ ฌ๋  ์ˆ˜์˜ ๊ฐฏ์ˆ˜ ํŠน์ง• 1. ์‹œ๊ฐ„ ๋ณต์žก๋„์—์„œ ์—„์ฒญ๋‚œ ์ด์ ์„ ๊ฐ–๋Š”๋‹ค. ๋ฌด๋ ค O(N).. 2. ํ•˜์ง€๋งŒ ๊ทธ๋งŒํผ ์ถ”๊ฐ€์ ์ธ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋งŽ์ด ํ•„์š”ํ•˜๋‹ค. [153, 262, 37, 598, 433, 855]๋ฅผ ๊ธฐ์ˆ˜ ์ •๋ ฌ์„ ์ด์šฉํ•ด ์ •๋ ฌํ•ด๋ณด์ž. ๊ฐ€์žฅ ๋‚ฎ์€ 1๋ฒˆ์งธ ์ž๋ฆฌ๋ถ€ํ„ฐ(1์˜ ์ž๋ฆฌ) ๊ฐ€์žฅ ๋†’์€ 3๋ฒˆ์งธ ์ž๋ฆฌ(100์˜ ์ž๋ฆฌ) ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด 0~9 ๊นŒ..

[์ •๋ ฌ] 6. ํž™ ์ •๋ ฌ

ํž™ ์ •๋ ฌ : ๊ธฐ๋ณธ ์•„์ด๋””์–ด๋Š” ๋ฒ„๋ธ” ์ •๋ ฌ๊ณผ ๋น„์Šทํ•˜๋‹ค. 1๋“ฑ์„ ๋ฝ‘์•„๋‚ด๊ณ , ๋‚˜๋จธ์ง€ ์›์†Œ์—์„œ 1๋“ฑ์„ ๊ณ„์† ๋ฝ‘์•„๋‚ด๋ฉฐ ์ •๋ ฌํ•œ๋‹ค. ๋ฒ„๋ธ” ์ •๋ ฌ๊ณผ ๋‹ค๋ฅธ ์ ์€, ๋ฒ„๋ธ” ์ •๋ ฌ์€ ๋‚จ์€ ์›์†Œ์—์„œ 1๋“ฑ์„ ๋‹ค์‹œ ๋น„๊ต๋ฅผ ํ†ตํ•ด ์ฐพ์•„์•ผ ํ•˜์ง€๋งŒ ํž™ ์ •๋ ฌ์€ ํž™(Heap)์„ ์ด์šฉํ•˜๋ฉด, 1๋“ฑ์„ ๋ฝ‘์•„๋‚ธ ๋’ค, ๋‚˜๋จธ์ง€ ์›์†Œ์—์„œ 1๋“ฑ์„ ๋ฝ‘์„ ๋•Œ ๋‹ค์‹œ ๋น„๊ตํ•  ํ•„์š” ์—†์ด 2๋“ฑ์ด ์ž๋™์œผ๋กœ 1๋“ฑ์ด ๋œ๋‹ค. ๊ทธ๋Ÿผ, ํž™(Heap)์— ๋Œ€ํ•ด ์ž ๊น ์•Œ์•„๋ณด์ž. ํž™์˜ ์„ฑ์งˆ 1. ๋ฆฌํ”„ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋…ธ๋“œ๋Š” ์ž์‹์ด ๋ฐ˜๋“œ์‹œ 2๋ช… 2. Max heap: ๋ถ€๋ชจ๋Š” ์ž์‹๋ณด๋‹ค ๋ฐ˜๋“œ์‹œ ํฌ๋‹ค. Min heap: ๋ถ€๋ชจ๋Š” ์ž์‹๋ณด๋‹ค ๋ฐ˜๋“œ์‹œ ์ž‘๋‹ค. ํž™์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ (์ถœ์ฒ˜: https://guides.codepath.com/compsci/Heaps) ์ž, ์ด์ œ ํž™ ์ •๋ ฌ์— ๋Œ€ํ•ด ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋“ค์–ด..

๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ