๋น ์ค(6)
-
[์๊ณ ๋ฆฌ์ฆ] ์ด์ง ํ์ ๊ธฐ๋ฒ
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ง ํ์์ ๋ํด์ ๊ณต๋ถํ๋ ์๊ฐ์ธ ๊ฒ์ด์์. ์ฝํ ๋ฅผ ์ ๋ฅํ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํด ์ด์ฌํ ๊ณต๋ถ ํด ๋ณด๊ฒ ์ต๋๋ค! ์์ค ์ฝ๋์ ๋ํด์ ํ์ธ ํ๊ณ ์ถ์ผ์ ๋ถ๋ค๊ป์๋ ์ฃผ๋ํ๋์ Git hub์ ๊ด์ฌ์ ์ฃผ์ธ์! ๐ Binary Search (์ด์ง ํ์) ๋? ํ์ํ ์๋ฃ์ ํ ํน์ List ๋ฑ์ ๋๋ก ๋๋์ด ํด๋น Data๊ฐ ์์ ๋งํ ๊ณณ์ ํ์ํ๋ ๊ธฐ๋ฒ์ธ ๊ฒ์ด์์. ์ฝ๊ฒ ๋งํด ๋ด๊ฐ ์ฐพ์ ๊ฐ์ ์ฐพ๊ธฐ ์ํด ๊ณ์ ๋ ๊ฐ๋ก ์ชผ๊ฐ์ ํ์ ์๋ ๋ถ๋ถ์ ๋ฒ๋ฆฌ๊ณ ๋ฅผ ๋ฐ๋ณตํ๋ ๋ฐฉ๋ฒ์ธ ๊ฒ์ด์์! ์์ ๋ฌธ์ ๋ ์ด์ง ํ์์ ์ฌ์ฉํ์ฌ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๊ฐ์ฅ ๋น ๋ฅด๋ค๊ณ ํฉ๋๋ค. ๋จ! ์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์ ์ ๋ ฌ์ด ๋์ด ์์ด์ผ ํ๋ค๋ ์ ์ด์์! ๐์ด์ง ํ์์ ์ดํด (์์ฐจ ํ์๊ณผ ๋น๊ตํ๋ฉฐ ์ดํดํ๊ธฐ) ๐๋ถํ ..
2021.09.17 -
[์๊ณ ๋ฆฌ์ฆ] Quick Sort (ํต ์ ๋ ฌ)
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฃ๊ตฌ์กฐ์์ ํต ์ ๋ ฌ์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ์์ค ์ฝ๋์ ๋ํด์ ํ์ธ ํ๊ณ ์ถ์ผ์ ๋ถ๋ค๊ป์๋ ์ฃผ๋ํ๋์ Git hub์ ๊ด์ฌ์ ์ฃผ์ธ์! ๐ Quick Sort(ํต ์ ๋ ฌ)์ด๋? ์ด๊ฒ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ฝ์ธ ๊ฒ์ด์์! ์ด๋ฆ ๊ทธ๋๋ก ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ธ ๊ฒ์ด์์. ํต ์ ๋ ฌ์ ๊ธฐ์ค์ (pivot)์ ์ ํด์, ๊ธฐ์ค์ ๋ณด๋ค ์์ Data๋ ์ผ์ชฝ(left)์ ๊ทธ๋ณด๋ค ํฐ Data๋ ์ค๋ฅธ์ชฝ(right)๋ก ๋ชจ์ผ๋ ํจ์๋ฅผ ์์ฑํ๋ ๊ฒ์ด์์. ๊ฐ ์ผ์ชฝ, ์ค๋ฅธ์ชฝ์ ์ฌ๊ท์ฉ๋ฒ์ ํ์ฉํ์ฌ ๋ค์ ๋์ผ ํจ์๋ฅผ ํธ์ถํ ๋ค ์ ์์ ์ ๋ฐ๋ณตํ๋๋ก ํ๋ฉด ๋๋ ๊ฒ์ด์์. ๊ทธ๋ฐ ๋ค, ํจ์๋ ์ผ์ชฝ + ๊ธฐ์ค์ + ์ค๋ฅธ์ชฝ์ ํ ๋ค ๋ฐํํ๋ฉด ๋๋ ๊ฒ์ด์์. import random def ..
2021.09.09 -
[์๊ณ ๋ฆฌ์ฆ] ๋ณํฉ ์ ๋ ฌ (merge sort)
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์๊ณ ๋ฆฌ์ฆ์์ ๋ณํฉ์ ๋ ฌ์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ๋ณํฉ ์ ๋ ฌ์ ๋ถํ ์ ๋ณต์ ๋ํ์ ์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ธ ๊ฒ์ด์์. ๋ถํ ์ ๋ณต์ ๋ํด ์ ๋ชจ๋ฅด์ ๋ค๋ฉด Dynamic Programming(๋์ ๊ณํ๋ฒ)& Divide and Conquer(๋ถํ ์ ๋ณต)์ ๊ด์ฌ์ ์ฃผ์ธ์! ์์ค ์ฝ๋์ ๋ํด์ ํ์ธ ํ๊ณ ์ถ์ผ์ ๋ถ๋ค๊ป์๋ ์ฃผ๋ํ๋์ Git hub์ ๊ด์ฌ์ ์ฃผ์ธ์! ๐ ๋ณํฉ ์ ๋ ฌ (Merge sort) ๋ณํฉ ์ ๋ ฌ์ ์ฌ๊ท์ฉ๋ฒ์ ํ์ฉํ ์๊ณ ๋ฆฌ์ฆ ์น๊ตฌ ์ค ํ๋์ธ ๊ฒ์ด์์. ๋จผ์ , ๋ฆฌ์คํธ๋ฅผ ์ ๋ฐ์ผ๋ก ์๋ผ ๋น์ทํ ํฌ๊ธฐ์ ๋ ๋ถ๋ถ ๋ฆฌ์คํธ๋ก ๋๋๋ ์์ ์ ํฉ๋๋ค! ๊ทธ๋ฐ ๋ค, ๊ฐ ๋ถ๋ถ ๋ฆฌ์คํธ๋ฅผ ์ฌ๊ท์ ์ผ๋ก ํฉ๋ณ ์ ๋ ฌ์ ์ด์ฉํด ์ ๋ ฌ์ ํ๋ ๊ฒ์ด์์. ๋ง์ง๋ง์ผ๋ก ๋ ๋ถ๋ถ ..
2021.09.09 -
[์๊ณ ๋ฆฌ์ฆ] 02. ์ ํ ์ ๋ ฌ
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์๊ณ ๋ฆฌ์ฆ์์ Selection Sort์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ์์ค ์ฝ๋์ ๋ํด์ ํ์ธ ํ๊ณ ์ถ์ผ์ ๋ถ๋ค๊ป์๋ ์ฃผ๋ํ๋์ Git hub์ ๊ด์ฌ์ ์ฃผ์ธ์! ๐ Selection Sort (์ ํ ์ ๋ ฌ)๋? ์ ํ ์ ๋ ฌ์ ์ฃผ์ด์ง Data ์ค ์ต์๊ฐ์ ์ฐพ๊ฒ ๋๋ ๊ฒ์ด์์. ๊ทธ๋ฐ ๋ค ํด๋น ์ต์๊ฐ์ ๋งจ ์์ ์์นํ ๊ฐ๊ณผ ์๋ฆฌ๋ฅผ ๋ฐ๊พธ๊ฒ ๋๋ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ๋งจ ์์ ์์น๋ฅผ ๋บ ๋๋จธ์ง Data๋ฅผ ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ๋ณตํ๋ ๊ฒ์ด์์. ์ด๋ฏธ ์ต์๊ฐ์ผ๋ก ์๋ฆฌ๊ฐ ์ด๋ ๋ ๊ฒ๋ค์ ๋ค์ ์๋ฆฌ ์ด๋์ ํ ํ์๊ฐ ์์ผ๋ ์ ๋ ฌ์ ์๋ n -1 ๋งํผ ์ค์ด๋๋ ๊ฒ์ด์์. ์ฐธ๊ณ ์ฌ์ดํธ : https://visualgo.net/ko/sorting VisuAlgo - So..
2021.09.08 -
[์๋ฃ๊ตฌ์กฐ] Tree ๊ตฌ์กฐ(2)
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฃ๊ตฌ์กฐ์์ Tree ๊ตฌ์กฐ ๋๋ฒ์งธ ๊ณต๋ถ๋ฅผ ์์ ํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค! ์์ค ์ฝ๋์ ๋ํด์ ํ์ธ ํ๊ณ ์ถ์ผ์ ๋ถ๋ค๊ป์๋ ์ฃผ๋ํ๋์ Git hub์ ๊ด์ฌ์ ์ฃผ์ธ์! ๋ณธ ํผ๋๋ [์๋ฃ๊ตฌ์กฐ] Tree ๊ตฌ์กฐ(1)์ ์ฐ์ฅ์ด๋ฉฐ, ํด๋น ํผ๋๋ฅผ ๋จผ์ ํ์ธํ์๊ณ , ์ด ํผ๋๋ฅผ ํ์ธํ์๋ ๊ฑธ ์ถ์ฒ ๋๋ฆด๊ฒ์! ๐ Binary Search Tree Node Delete (์ด์ง ํ์ ํธ๋ฆฌ ๋ ธ๋ ์ญ์ ) ๐ Case 3-1 ๐์ญ์ ํ Node๊ฐ Child Node๋ฅผ ๋ ๊ฐ ๊ฐ์ง๊ณ ์์ ๊ฒฝ์ฐ (์ญ์ ํ Node๊ฐ Parent Node ์ผ์ชฝ์ ์์ ๋) ๊ธฐ๋ณธ ์ฌ์ฉ ์ ๋ต ์ญ์ ํ Node์ ์ค๋ฅธ์ชฝ ์์ ์ค, ๊ฐ์ฅ ์์ ๊ฐ์ ์ญ์ ํ Node์ Parent Node๊ฐ ๊ฐ๋ฅดํค๋๋ก ํ๋ค. ์ญ์ ..
2021.08.29 -
[์๊ณ ๋ฆฌ์ฆ] ์๊ฐ ๋ณต์ก๋
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๊ณ ๋ฆฌ์ฆ์์ ์๊ฐ ๋ณต์ก๋์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ ๊ฒ์ด์์! ์ ๊ฐ ํผ ์ฝ๋๊ฐ ๊ถ๊ธํ์๋ค๋ฉด? ์ฃผ๋ํ๋์ ๊น ํ๋ธ์ ๊ด์ฌ์ ์ฃผ์ธ์! ๋ฐ๋ก ์์ ํด ๋ณด๊ฒ ์ต๋๋ค! ๐ Algorithm ๋ณต์ก๋ ํํ ๋ฐฉ๋ฒ ๐ Algorithm ๋ณต์ก๋ ๊ณ์ฐ Algorithm์ ๋ณต์ก๋์ ๋ํ ๊ณ์ฐ ๋ฐฉ๋ฒ์ ์ ์๋ ๊ฒ์ผ๊น์? ๊ทธ๊ฒ์ ๋ฐ๋ก ํ๋์ ๋ฌธ์ ๋ฅผ ํธ๋ Algorithm์ด ๋๋ฌด๋๋ ๋ค์ํ ์ ์๊ธฐ ๋๋ฌธ์ธ ๊ฒ์ด์์. ์๋ฅผ ๋ค์ด ์ ์์ ์ ๋๊ฐ (+1 = 1, -1 = 1)์ ๊ตฌํ๋ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐ ํด ๋ณผ๊ฒ์. ์ด๋ค ์ฌ๋์ ์ ์๊ฐ์ ์ ๊ณฑํ ๊ฐ์ ๋ฃจํธ๋ฅผ ์์ฐ๋ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํ ์ ์์ ๊ฒ์ด์์. ๋ ์ด๋ค ์ฌ๋์ if๋ฌธ์ ํตํด ํด๋น ๊ฐ์ด ์ ์์ธ์ง ์์์ธ์ง๋ฅผ ํ์ธํ๊ณ , ์์์ผ ๋๋ง -1์ ๊ณฑํ๋๋ก..
2021.08.16