์๊ณ ๋ฆฌ์ฆ [Algorithm] - ๊ณ์ ์ ๋ ฌ Counting Sort (7) (C, Python) ๊ณ์ ์ ๋ ฌ ์ด๋ฒ์๋ ๊ณ์ ์ ๋ ฌ์ ๋ํด ์์๋ณด์. ๊ณ์ ์ ๋ ฌ์ด๋ ๋จ์ํ๊ฒ 'ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ธ๋ ์๊ณ ๋ฆฌ์ฆ'์ด๋ค. ํ์ง๋ง ๊ณ์ ์ ๋ ฌ์ '๋ฒ์์กฐ๊ฑด'์ด ์๋ ๊ฒฝ์ฐ์ ํํด์ ๊ต์ฅํ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ง๊ธ๊น์ง ์ ํ ์ ๋ ฌ, ๋ฒ๋ธ ์ ๋ ฌ, ์ฝ์ ์ ๋ ฌ, ํต ์ ๋ ฌ, ๋ณํฉ ์ ๋ ฌ, ํ ์ ๋ ฌ์ ๋ฐฐ์ ๋๋ฐ ์ง๊ธ ๊น์ง ๋ฐฐ์ด ์ ๋ ฌ ์ค ๊ฐ์ฅ ๋น ๋ฅธ ์ ๋ ฌ๋ฐฉ๋ฒ์ ๊ณ ๋ฅด๋ผ๋ฉด ์๊ฐ ๋ณต์ก๋ O(N*log N)์ ๊ฐ์ง๋ ํต ์ ๋ ฌ, ๋ณํฉ ์ ๋ ฌ, ํ ์ ๋ ฌ ์ค ํ๋๋ฅผ ๊ณ ๋ฅผ ๊ฒ์ด๋ค. ํ์ง๋ง ์ด๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ์ ๋ ฌํด์ผ ํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ๋ ๊น? ๊ณ์ ์ ๋ ฌ์ ๋ฒ์๊ฐ ์ฃผ์ด์ ธ์๋ค๋ฉด ์๊ฐ๋ณต์ก๋ O(N)์ ์๋๋ก ์ ๋ ฌ์ ์ํํ๋ค. ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐฏ์๋ฅผ ์ธ๊ณ , ๊ฐฏ์๋งํผ ์ถ๋ ฅํด์ฃผ๋ฉด ์ ๋ ฌ์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ๊ต์ฅํ ๋น ๋ฅด๋ค. ๋ค์์ 5 ์ดํ ์์ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ์ธ.. ์๊ณ ๋ฆฌ์ฆ [Algorithm] - ํ ์ ๋ ฌ Heap Sort(6) (C,Python) ํ์ ๋ ฌ ์ด๋ฒ์๋ ํ ์ ๋ ฌ์ ๋ํด ์์๋ณด์. ํ์ ๋ ฌ์ด๋ ํํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ๋ ์ ๋ ฌ๋ฐฉ๋ฒ์ด๋ค. ์ด๋ฅผ ์ดํดํ๊ธฐ ์ํด์ ๋จผ์ ํ(Heap)๊ตฌ์กฐ๋ฅผ ์์์ผํ๊ณ , ํ์ ์๊ธฐ ์ด์ ์๋ ์ด์ง ํธ๋ฆฌ(Binary Tree)์ ๋ํด ์์์ผ ํ๋ค. ์ด์ง ํธ๋ฆฌ(binary tree)๋ ๊ฐ๊ฐ์ ๋ ธ๋๊ฐ ์ต๋ ๋ ๊ฐ์ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง๋ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ๋ก, ์์ ๋ ธ๋๋ฅผ ๊ฐ๊ฐ ์ผ์ชฝ์์ ๋ ธํธ์ ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋ ๋ผ๊ณ ํ๋ค. (์ถ์ฒ : https://ko.wikipedia.org/wiki/%EC%9D%B4%EC%A7%84_%ED%8A%B8%EB%A6%AC) ์์ ์ด์งํธ๋ฆฌ๋ ๋ฐ์ดํฐ๊ฐ ๋ฃจํธ(Root) ๋ ธ๋๋ถํฐ ์์ํด์ ์์๋ ธ๋๊ฐ ์ผ์ชฝ ์์๋ ธ๋, ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋๋ก ์ฐจ๊ทผ์ฐจ๊ทผ ๋ค์ด๊ฐ๋ ๊ตฌ์กฐ์ ์ด์ง ํธ๋ฆฌ์ด๋ค. ์ฆ ์์ ์ด์งํธ๋ฆฌ๋ ์ด์งํธ๋ฆฌ์ ๋ ธ๋๊ฐ ์ค.. ์๊ณ ๋ฆฌ์ฆ [Algorithm] - ๋ณํฉ ์ ๋ ฌ Merge Sort(5) (C,Python) ๋ณํฉ์ ๋ ฌ ์ด๋ฒ์๋ ๋ณํฉ ์ ๋ ฌ์ ๋ํด ์์๋ณด์. ๋ณํฉ์ ๋ ฌ๋ ํต์ ๋ ฌ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ํ์ ์ธ '๋ถํ ์ ๋ณต' ๋ฐฉ๋ฒ์ ์ฑํํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ฐ๋ผ์ ๊ฒฐ๊ณผ์ ์ผ๋ก ํต ์ ๋ ฌ๊ณผ ๋์ผํ๊ฒ O(N * logN)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค. ๋ค๋ง ํต ์ ๋ ฌ์ ์ต์ ์ ๊ฒฝ์ฐ O(N^2)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง์ง๋ง, ๋ณํฉ์ ๋ ฌ์ ์ ํํ ๋ฐ์ ์ฉ ๋๋๋ค๋ ์ ์์ ์ต์ ์ ๊ฒฝ์ฐ์๋ O(N*logN)์ ๋ณด์ฅํ๋ค. ๋ค์์ ์ซ์๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. 7 6 5 8 3 5 9 1 ๋ณํฉ์ ๋ ฌ์ ํ๋์ ํฐ ๋ฌธ์ ๋ฅผ ๋๊ฐ์ ์์ ๋ฌธ์ ๋ก ๋ถํ ํ ๋ค์ ๊ฐ์ ๊ณ์ฐํ๊ณ ๋์ค์ ํฉ์น๋ ๋ฐฉ๋ฒ์ ์ฑํํ๋ค. ์ฆ ๊ธฐ๋ณธ ์์ด๋์ด๋ ์ผ๋จ ์ ํํ ๋ฐ์ผ๋ก ๋๋๊ณ ๋์ค์ ์ ๋ ฌํ๋ ๊ฒ์ด๋ค. ํต ์ ๋ ฌ๊ณผ ๋ค๋ฅด๊ฒ ํผ๋ฒ ๊ฐ์ด ์๊ณ ํญ์ ๋ฐ์ผ๋ก ๋๋๋ค๋ ํน์ง์ด ์๊ณ , ๋๋ฌธ์ ๋จ.. ์๊ณ ๋ฆฌ์ฆ [Algorithm] - ๊ธฐ์ด ์ ๋ ฌ๋ฌธ์ ํ์ด๋ณด๊ธฐ (5) (C, Python) import sys a = int(sys.stdin.readline()) data = [sys.stdin.readline().strip() for i in range(a)] data_int = list(map(int,data)) data_int.sort() for j in range(a): print(data_int[j]) ๊ธฐ์ด ์ ๋ ฌ ๋ฌธ์ ํ์ด๋ณด๊ธฐ ์ง๊ธ๊น์ง ์ ํ์ ๋ ฌ, ๋ฒ๋ธ์ ๋ ฌ, ์ฝ์ ์ ๋ ฌ, ํต์ ๋ ฌ์ ๋ฐฐ์ ๋ค. ์ด๋ฅผ ํ์ฉํด์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง์ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์! 1. ์ธ ์ซ์ ์ ๋ ฌ : https://www.acmicpc.net/problem/2752 2752๋ฒ: ์ธ์์ ๋ ฌ ์ซ์ ์ธ ๊ฐ๊ฐ ์ฃผ์ด์ง๋ค. ์ด ์ซ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 1,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ์ด ์ซ์๋ ๋ชจ๋ ๋ค๋ฅด๋ค. www.acmicpc... ์ด์ 1 2 3 4 ยทยทยท 10 ๋ค์