์ฝ๋ฉํ
์คํธ/๊ธฐ๋ณธ ์๊ณ ๋ฆฌ์ฆ
2022. 1. 10.
์ ๋ ฌ ์ฝ๋1(๊ณ์ ์ ๋ ฌ, ์ฝ์
์ ๋ ฌ, ์ ํ ์ ๋ ฌ)
๊ณ์ ์ ๋ ฌ (count sort) ๊ณ์์ ๋ ฌ์ ๋ฐ์ดํฐ์ ํฌ๊ธฐ ๋ฒ์๊ฐ ์ ํ๋์ด ์ ์ํํ๋ก ํํ๋ ์ ์์๋ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. (์ผ๋ฐ์ ์ผ๋ก ํฐ ๋ฐ์ดํฐ์ ์์ ๋ฐ์ดํฐ์ ์ฐจ์ด๊ฐ 1,000,000์ด ๋์ง ์์๋ ์ฌ์ฉํ๋ค.) ๋ฐ์ดํฐ์ ๊ฐ์๊ฐ N, ๋ฐ์ดํฐ ์ค ์ต๋๊ฐ์ด K์ผ๋, ์ต์
์ ๊ฒฝ์ฐ์๋ O(n+k)์ ์ํ์๊ฐ์ ๋ณด์ฅํ๋ ๋น ๋ฅธ ์ ๋ ฌ๋ฒ์ด๋ค. ๋์์๋ฆฌ๋ ๋ง์ฝ ์ต์0๋ถํฐ ์ต๋1,000,000์ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ, '๋ชจ๋ ๋ฒ์๋ฅผ ๋ด์ ์ ์๋ ๋ฆฌ์คํธ' - ์ฆ 1,000,001๊ฐ์ ๋ฆฌ์คํธ๋ฅผ ์ ์ธํ์ฌ ๊ฐ ๊ฐ์ ๋ด๋๊ฒ์ด๋ค. ๊ทธ๋์ ๋งค์ฐ ํฐ ๋ฒ์๋ ์ฌ์ฉํ ์ ์๋ค. def count_sort(array): count = [0] * (max(array) + 1) for i in range(len(array)): c..