์ฝ๋ฉํ ์คํธ(8)
-
[์๊ณ ๋ฆฌ์ฆ] 01. ๋ฒ๋ธ์ ๋ ฌ
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์๊ณ ๋ฆฌ์ฆ์์ Bubble Sort์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ์์ค ์ฝ๋์ ๋ํด์ ํ์ธ ํ๊ณ ์ถ์ผ์ ๋ถ๋ค๊ป์๋ ์ฃผ๋ํ๋์ Git hub์ ๊ด์ฌ์ ์ฃผ์ธ์! ๐ Sorting (์ ๋ ฌ)์ด๋? ์ ๋ ฌ์ ์ด๋ค Data๊ฐ ์ฃผ์ด์ก์ ๋, ์ด๋ฅผ ์ ํด์ง ์์๋๋ก ๋์ดํ๋ ๊ฒ์ด์์. ์ ๋ ฌ์ Program ์์ฑ ์ ๋น๋ฒํ๊ฒ ํ์ํ๋ต๋๋ค! ๋๋ฌธ์ ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ์ด ์กด์ฌํ๊ณ , ์ด๋ฅผ ๊ณต๋ถํด์ผ ํ๋ ๊ฒ์ด์์. ๋ค์ํ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ดํดํ๊ฒ ๋๋ค๋ฉด ๋์ผํ ๋ฌธ์ ์ ๋ํด ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐํด ๋ณผ ์ ์๊ฒ ๋๊ณ , ๊ฐ ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ ์ฑ๋ฅ ๋น๊ต๋ฅผ ํตํด, ์ฑ๋ฅ ๋ถ์์ ๋ํด์๋ ์ดํดํ ์ ์๋ต๋๋ค! ๐ Bubble Sort (๋ฒ๋ธ ์ ๋ ฌ)๋? ๋ ์ธ์ ํ Data๋ฅผ ์๋ก ๋น๊ต..
2021.09.07 -
[์๋ฃ๊ตฌ์กฐ] 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 -
[์๋ฃ๊ตฌ์กฐ] Tree ๊ตฌ์กฐ(1)
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฃ๊ตฌ์กฐ์์ Tree ๊ตฌ์กฐ์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ๋ํ๊ต ๊ฐ์ ์๊ฐ์ ์ฐธ ์ดํด๊ฐ ์ ๊ฐ๋ ๊ฒ๋ค ์ค ํ๋์๋๋ฐ, ๋ค์ ํ๋ฒ ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์์ค ์ฝ๋์ ๋ํด์ ํ์ธ ํ๊ณ ์ถ์ผ์ ๋ถ๋ค๊ป์๋ ์ฃผ๋ํ๋์ Git hub์ ๊ด์ฌ์ ์ฃผ์ธ์! ๐ Tree ๊ตฌ์กฐ Tree๋ Node์ Branch๋ฅผ ์ด์ฉํ์ฌ Cycle์ด ์ด๋ค์ง์ง ์๋๋ก ๊ตฌ์ฑํ Data ๊ตฌ์กฐ์ธ ๊ฒ์ด์์. Git์ ์ฌ์ฉํด ๋ณด์ จ๋ค๋ฉด Branch ๋ง์ด ๋ค์ด๋ณด์ จ์ง์? ๊ทธ๋ ๋ค๋ฉด ์ด๋์ ๋ง์ด ์ฌ์ฉ๋ ๊น์? Tree ๊ตฌ์กฐ ์ค Binary Tree(์ด์ง ํธ๋ฆฌ) ํํ์ ๊ตฌ์กฐ๋ก, ํ์(๊ฒ์) ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์ ์ํด ๋ง์ด ์ฌ์ฉ๋๋ต๋๋ค! ๐ ์ฉ์ด ์ ๋ฆฌ Node : Tree์์ ์ค์ง์ ์ผ๋ก Data..
2021.08.29 -
[์๋ฃ๊ตฌ์กฐ] 05. Hash Table
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฃ๊ตฌ์กฐ์์ Hash Table์ ๋ํด์ ๊ณต๋ถ ํด ๋ณด๋๋ก ํ ๊ฒ์ด์์! ์ ๊ฐ ์์ฑํ ์ฝ๋๊ฐ ๊ถ๊ธํ์๋ค๋ฉด? ์ฃผ๋ํ๋์ ๊น ํ๋ธ์ ๊ด์ฌ์ ์ฃผ์ธ์! ํด์ ํจ์์ ๋ํ ๊ฐ๋ ์ ์ ๋ชจ๋ฅด์ ๋ค๋ฉด [์ ๋ณด๋ณด์] ํด์ํจ์ ๊ฐ๋ ์ ๊ด์ฌ์ ์ฃผ์ธ์! ๋ฐ๋ก ์์ ํด ๋ณด๊ฒ ์ต๋๋ค! ๐ Hash Table ๐ Hash ๊ตฌ์กฐ Hash Table์ Key์ Data๋ฅผ ์ ์ฅํ๋ Data ๊ตฌ์กฐ์ธ ๊ฒ์ด์์. JAVA๋ก ๋ณด๋ฉด Hash Map์ด ๋ ๊ฒ์ด๊ณ , Python์์๋ Dictionary ๊ตฌ์กฐ๊ฐ ๋ ๊ฒ์ด์์! Key๋ฅผ ํตํด ๋ฐ๋ก Data๋ฅผ ๋ฐ์์ฌ ์ ์์ผ๋ฏ๋ก, ์๋๊ฐ ํ๊ธฐ์ ์ผ๋ก ๋น ๋ฅด๋ค Python Dictionary(์ฌ์ ) Type Hash Table Exam : Key๋ฅผ ๊ฐ์ง๊ณ ๋ฐ๋ก Value๋ฅผ ๊บผ๋ธ..
2021.08.27 -
[์๊ณ ๋ฆฌ์ฆ] ์๊ฐ ๋ณต์ก๋
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๊ณ ๋ฆฌ์ฆ์์ ์๊ฐ ๋ณต์ก๋์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ ๊ฒ์ด์์! ์ ๊ฐ ํผ ์ฝ๋๊ฐ ๊ถ๊ธํ์๋ค๋ฉด? ์ฃผ๋ํ๋์ ๊น ํ๋ธ์ ๊ด์ฌ์ ์ฃผ์ธ์! ๋ฐ๋ก ์์ ํด ๋ณด๊ฒ ์ต๋๋ค! ๐ Algorithm ๋ณต์ก๋ ํํ ๋ฐฉ๋ฒ ๐ Algorithm ๋ณต์ก๋ ๊ณ์ฐ Algorithm์ ๋ณต์ก๋์ ๋ํ ๊ณ์ฐ ๋ฐฉ๋ฒ์ ์ ์๋ ๊ฒ์ผ๊น์? ๊ทธ๊ฒ์ ๋ฐ๋ก ํ๋์ ๋ฌธ์ ๋ฅผ ํธ๋ Algorithm์ด ๋๋ฌด๋๋ ๋ค์ํ ์ ์๊ธฐ ๋๋ฌธ์ธ ๊ฒ์ด์์. ์๋ฅผ ๋ค์ด ์ ์์ ์ ๋๊ฐ (+1 = 1, -1 = 1)์ ๊ตฌํ๋ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐ ํด ๋ณผ๊ฒ์. ์ด๋ค ์ฌ๋์ ์ ์๊ฐ์ ์ ๊ณฑํ ๊ฐ์ ๋ฃจํธ๋ฅผ ์์ฐ๋ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํ ์ ์์ ๊ฒ์ด์์. ๋ ์ด๋ค ์ฌ๋์ if๋ฌธ์ ํตํด ํด๋น ๊ฐ์ด ์ ์์ธ์ง ์์์ธ์ง๋ฅผ ํ์ธํ๊ณ , ์์์ผ ๋๋ง -1์ ๊ณฑํ๋๋ก..
2021.08.16 -
[์๋ฃ๊ตฌ์กฐ] 04. Linked List
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฃ๊ตฌ์กฐ์์ ๋งํฌ๋ ๋ฆฌ์คํธ(์ฐ๊ฒฐ ๋ฆฌ์คํธ)์ ๋ํด์ ๊ณต๋ถ ํด ๋ณด๋๋ก ํ ๊ฒ์ด์์! ์ ๊ฐ ์์ฑํ ์ฝ๋๊ฐ ๊ถ๊ธํ์๋ค๋ฉด? ์ฃผ๋ํ๋์ ๊น ํ๋ธ์ ๊ด์ฌ์ ์ฃผ์ธ์! ๋ฐ๋ก ์์ ํด ๋ณด๊ฒ ์ต๋๋ค! ๐ Linked List ( ์ฐ๊ฒฐ List ) ๋ฐฐ์ด์ ์์ฐจ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ๊ณต๊ฐ์ Data๋ฅผ ๋ํ๋ธ ๊ตฌ์กฐ์ง๋ง, Linked List๋ ๊ณต๊ฐ์ด ๋จ์ด์ ธ ์์ด๋ Data๋ฅผ ๊ฐ์์ ํ์ดํ๋ก ์ฐ๊ฒฐํด์ ๊ด๋ฆฌํ๋ Data์ ๊ตฌ์กฐ์ธ ๊ฒ์ด์์. ๋ณธ๋ C์ธ์ด์์๋ ์ฃผ์ํ Data ๊ตฌ์กฐ์ง๋ง, Python์ List Type์ด Linked List๋ฅผ ๋ชจ๋ ์ง์ํ๋ต๋๋ค! ๐ Linked List ๊ธฐ๋ณธ ๊ตฌ์กฐ์ ์ฉ์ด Node(๋ ธ๋) : Data ์ ์ฅ ๋จ์ (Data Value, Pointer)๋ก ๊ตฌ์ฑ Pointer(ํฌ์ธํฐ..
2021.08.15