์๊ฐ๋ณต์ก๋(5)
-
[์๊ณ ๋ฆฌ์ฆ] Quick Sort (ํต ์ ๋ ฌ)
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฃ๊ตฌ์กฐ์์ ํต ์ ๋ ฌ์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ์์ค ์ฝ๋์ ๋ํด์ ํ์ธ ํ๊ณ ์ถ์ผ์ ๋ถ๋ค๊ป์๋ ์ฃผ๋ํ๋์ Git hub์ ๊ด์ฌ์ ์ฃผ์ธ์! ๐ Quick Sort(ํต ์ ๋ ฌ)์ด๋? ์ด๊ฒ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ฝ์ธ ๊ฒ์ด์์! ์ด๋ฆ ๊ทธ๋๋ก ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ธ ๊ฒ์ด์์. ํต ์ ๋ ฌ์ ๊ธฐ์ค์ (pivot)์ ์ ํด์, ๊ธฐ์ค์ ๋ณด๋ค ์์ Data๋ ์ผ์ชฝ(left)์ ๊ทธ๋ณด๋ค ํฐ Data๋ ์ค๋ฅธ์ชฝ(right)๋ก ๋ชจ์ผ๋ ํจ์๋ฅผ ์์ฑํ๋ ๊ฒ์ด์์. ๊ฐ ์ผ์ชฝ, ์ค๋ฅธ์ชฝ์ ์ฌ๊ท์ฉ๋ฒ์ ํ์ฉํ์ฌ ๋ค์ ๋์ผ ํจ์๋ฅผ ํธ์ถํ ๋ค ์ ์์ ์ ๋ฐ๋ณตํ๋๋ก ํ๋ฉด ๋๋ ๊ฒ์ด์์. ๊ทธ๋ฐ ๋ค, ํจ์๋ ์ผ์ชฝ + ๊ธฐ์ค์ + ์ค๋ฅธ์ชฝ์ ํ ๋ค ๋ฐํํ๋ฉด ๋๋ ๊ฒ์ด์์. import random def ..
2021.09.09 -
[์๊ณ ๋ฆฌ์ฆ] 02. ์ ํ ์ ๋ ฌ
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์๊ณ ๋ฆฌ์ฆ์์ Selection Sort์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ์์ค ์ฝ๋์ ๋ํด์ ํ์ธ ํ๊ณ ์ถ์ผ์ ๋ถ๋ค๊ป์๋ ์ฃผ๋ํ๋์ Git hub์ ๊ด์ฌ์ ์ฃผ์ธ์! ๐ Selection Sort (์ ํ ์ ๋ ฌ)๋? ์ ํ ์ ๋ ฌ์ ์ฃผ์ด์ง Data ์ค ์ต์๊ฐ์ ์ฐพ๊ฒ ๋๋ ๊ฒ์ด์์. ๊ทธ๋ฐ ๋ค ํด๋น ์ต์๊ฐ์ ๋งจ ์์ ์์นํ ๊ฐ๊ณผ ์๋ฆฌ๋ฅผ ๋ฐ๊พธ๊ฒ ๋๋ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ๋งจ ์์ ์์น๋ฅผ ๋บ ๋๋จธ์ง Data๋ฅผ ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ๋ณตํ๋ ๊ฒ์ด์์. ์ด๋ฏธ ์ต์๊ฐ์ผ๋ก ์๋ฆฌ๊ฐ ์ด๋ ๋ ๊ฒ๋ค์ ๋ค์ ์๋ฆฌ ์ด๋์ ํ ํ์๊ฐ ์์ผ๋ ์ ๋ ฌ์ ์๋ n -1 ๋งํผ ์ค์ด๋๋ ๊ฒ์ด์์. ์ฐธ๊ณ ์ฌ์ดํธ : https://visualgo.net/ko/sorting VisuAlgo - So..
2021.09.08 -
[์๋ฃ๊ตฌ์กฐ & ์๊ณ ๋ฆฌ์ฆ] ๊ณต๊ฐ ๋ณต์ก๋์ ์ฌ๊ทํจ์๋?
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๊ฐ ๋ณต์ก๋์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ์์ค ์ฝ๋์ ๋ํด์ ํ์ธ ํ๊ณ ์ถ์ผ์ ๋ถ๋ค๊ป์๋ ์ฃผ๋ํ๋์ Git hub์ ๊ด์ฌ์ ์ฃผ์ธ์! ๐ ๊ณต๊ฐ ๋ณต์ก๋ (Space Comploexity) ์๊ณ ๋ฆฌ์ฆ์์ ๊ณ์ฐ ๋ณต์ก๋๋ฅผ ๊ณ์ฐํ ๋ ๋ ๊ฐ์ง๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ด์์. ์๊ฐ ๋ณต์ก๋: ์ผ๋ง๋ ๋น ๋ฅด๊ฒ ์คํ๋๋๊ฐ? ๊ณต๊ฐ ๋ณต์ก๋: ์ผ๋ง๋ ์ ์ ์ ์ฅ ๊ณต๊ฐ ์ฉ๋์ ์ฌ์ฉํ๋๊ฐ? ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ข์ ์๊ณ ๋ฆฌ์ฆ์ด๋? ์คํ ์๊ฐ๋ ์งง๊ณ , ์ ์ฅ ๊ณต๊ฐ๋ ์ ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ด๊ฒ ์ง์? ํ์ง๋ง, ๋ ๋ค ๋ง์กฑ ์ํค๊ธด ์ด๋ ค์ด ๊ฒ์ด์์. ์๋ํ๋ฉด? ์๊ฐ๊ณผ ๊ณต๊ฐ์ ์์ ํ์ง๋ ์์ง๋ง, ๋ฐ ๋น๋ก์ ์ฑํฅ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ด๋๋๋ค. ํ์ง๋ง ์ต๊ทผ์๋ ๋์ฉ๋ System์ด ๋ณดํธํ๋๋ฉด์ ๊ณต๊ฐ ๋ณต์ก๋ ..
2021.09.08 -
[์๋ฃ๊ตฌ์กฐ] Heap (2)
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฃ๊ตฌ์กฐ์์ Heap ๊ตฌ์กฐ์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ์ด๋ฒ ํผ๋๋ Heap์ ๋๋ฒ์งธ ํผ๋ ์ ๋๋ค. 1ํธ์ ์ ๋ณด์ ๋ถ๋ค์ [์๋ฃ๊ตฌ์กฐ] Heap (1)์ ๊ด์ฌ์ ์ฃผ์ธ์! ๋ํ, ์์ค ์ฝ๋์ ๋ํด์ ํ์ธ ํ๊ณ ์ถ์ผ์ ๋ถ๋ค๊ป์๋ ์ฃผ๋ํ๋์ Git hub์ ๊ด์ฌ์ ์ฃผ์ธ์! ๐ Heap ์ญ์ (Max Heap ์์) ๐ Heap Class ๊ตฌํ ๐ Delete ์ฒซ๋ฒ์งธ ํ์ ์ต์๋จ Node (Root Node)๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ๊ฒ์ด์์. ์๋ํ๋ฉด ํ์ ๋ณธ๋ ์ฉ๋๊ฐ ์ต๋๊ฐ ๋๋ ์ต์๊ฐ์ Root Node์ ๋์ ๋ค ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๋ฐ๋ก ๊บผ๋ด ์ธ ์ ์๋๋ก ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ธ ๊ฒ์ด์์. def pop(self): # heap์ ์๋ Da..
2021.09.06 -
[์๊ณ ๋ฆฌ์ฆ] ์๊ฐ ๋ณต์ก๋
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๊ณ ๋ฆฌ์ฆ์์ ์๊ฐ ๋ณต์ก๋์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ ๊ฒ์ด์์! ์ ๊ฐ ํผ ์ฝ๋๊ฐ ๊ถ๊ธํ์๋ค๋ฉด? ์ฃผ๋ํ๋์ ๊น ํ๋ธ์ ๊ด์ฌ์ ์ฃผ์ธ์! ๋ฐ๋ก ์์ ํด ๋ณด๊ฒ ์ต๋๋ค! ๐ Algorithm ๋ณต์ก๋ ํํ ๋ฐฉ๋ฒ ๐ Algorithm ๋ณต์ก๋ ๊ณ์ฐ Algorithm์ ๋ณต์ก๋์ ๋ํ ๊ณ์ฐ ๋ฐฉ๋ฒ์ ์ ์๋ ๊ฒ์ผ๊น์? ๊ทธ๊ฒ์ ๋ฐ๋ก ํ๋์ ๋ฌธ์ ๋ฅผ ํธ๋ Algorithm์ด ๋๋ฌด๋๋ ๋ค์ํ ์ ์๊ธฐ ๋๋ฌธ์ธ ๊ฒ์ด์์. ์๋ฅผ ๋ค์ด ์ ์์ ์ ๋๊ฐ (+1 = 1, -1 = 1)์ ๊ตฌํ๋ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐ ํด ๋ณผ๊ฒ์. ์ด๋ค ์ฌ๋์ ์ ์๊ฐ์ ์ ๊ณฑํ ๊ฐ์ ๋ฃจํธ๋ฅผ ์์ฐ๋ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํ ์ ์์ ๊ฒ์ด์์. ๋ ์ด๋ค ์ฌ๋์ if๋ฌธ์ ํตํด ํด๋น ๊ฐ์ด ์ ์์ธ์ง ์์์ธ์ง๋ฅผ ํ์ธํ๊ณ , ์์์ผ ๋๋ง -1์ ๊ณฑํ๋๋ก..
2021.08.16