- Today
- Total
๋ชฉ๋ก์ ์ฒด ๊ธ (355)
DATA101
๋ณธ ํฌ์คํ ์์๋ ๊ณ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. ๊ณ์ ์ ๋ ฌ์ด๋? 2. ๊ณ์ ์ ๋ ฌ์ ๋์ ๊ณผ์ 3. ๊ณ์ ์ ๋ ฌ์ ๊ตฌํ(Python) 4. ๊ณ์ ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋ 1. ๊ณ์ ์ ๋ ฌ์ด๋? ๊ณ์ ์ ๋ ฌ์ ๋ฐ์ดํฐ ๊ฐ์๊ฐ ๋ง๋๋ผ๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋์ํ๋ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋๋ก์ ๋ฆฌ์คํธ๊ฐ ๋ชจ๋ ์ ์ ํํ๋ก ํํ๋์ด ์๊ณ ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ์ ๊ฐ์ฅ ํฐ ๋ฐ์ดํฐ์ ์ฐจ์ด๊ฐ 1๋ฐฑ๋ง(1,000,000) ์ดํ์ผ ๋ ํจ๊ณผ์ ์ผ๋ก ๋์ํฉ๋๋ค. ์ด์ฒ๋ผ ํน์ ์กฐ๊ฑด์ด ๋ถํฉํ ๋๋ง ๋์ํ๋ ์ด์ ๋ ๊ณ์ ์ ๋ ฌ์ ํ์ฉํ ๋๋ ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ๋ถํฐ ๊ฐ์ฅ ํฐ ๋ฐ์ดํฐ๊น์ง ๋ชจ๋ ๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์๋ ํฌ๊ธฐ์ ๋ฆฌ์คํธ๋ฅผ ์ ์ธํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ์ ๊ฐ์ฅ ํฐ ๋ฐ์ดํฐ์ ์ฐจ์ด๊ฐ 1,000,000์ด๋ผ๋ฉด ์ด ..
๋ณธ ํฌ์คํ ์์๋ ํต ์ ๋ ฌ(Quick sort) ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. ํต ์ ๋ ฌ์ด๋? 2. ํต ์ ๋ ฌ์ ๋์ ๊ณผ์ 3. ํต ์ ๋ ฌ ๊ตฌํ(Python) 4. ํต ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋ 1. ํต ์ ๋ ฌ์ด๋? ํต ์ ๋ ฌ์ ํผ๋ฒ(pivot)์ด๋ผ๋ ๊ธฐ์ค ๋ฐ์ดํฐ๋ฅผ ์ค์ ํ๊ณ ๊ทธ ๊ธฐ์ค ๋ฐ์ดํฐ๋ณด๋ค ํฐ ๋ฐ์ดํฐ์ ์์ ๋ฐ์ดํฐ์ ์์น๋ฅผ ๋ณ๊ฒฝํ๋ ์ ๋ ฌ ๋ฐฉ์์ ๋๋ค. ํต ์ ๋ ฌ์ ๋ฐ์ดํฐ ๊ฐ์ ๋น๊ต๋ง์ผ๋ก ์ ๋ ฌ์ ์ํํ๋ ๋น๊ต ์ ๋ ฌ ์ค ํ๋๋ก์ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด ์ ๋ ฌ์ด ๋น ๋ฅด๋ค๋ ํน์ง์ด ์์ต๋๋ค. ํต ์ ๋ ฌ์ ๋ฐฉ์์ ํผ๋ฒ์ ์ค์ ํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํ๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ง๋ก ๊ตฌ๋ถํ ์ ์์ง๋ง, ์ด๋ฒ ํฌ์คํ ์์๋ ๊ฐ์ฅ ๋ํ์ ์ธ ๋ถํ ๋ฐฉ์์ธ ํธ์ด ๋ถํ (Hoare Partition)์ ๊ธฐ์ค์ผ๋ก ์ค๋ช ๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค. 2. ํต ์ ๋ ฌ์..
๋ณธ ํฌ์คํ ์์๋ ์ฝ์ ์ ๋ ฌ(Insertion sort) ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. ์ฝ์ ์ ๋ ฌ์ด๋? 2. ์ฝ์ ์ ๋ ฌ์ ๋์ ๊ณผ์ 3. ์ฝ์ ์ ๋ ฌ ๊ตฌํ(Python) 4. ์ฝ์ ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋ 1. ์ฝ์ ์ ๋ ฌ์ด๋? ์ฝ์ ์ ๋ ฌ์ ์ ๋ ฌ์ด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ณ ์ ์ ํ ์์น์ ์ฝ์ ํ๋ฉฐ ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์ฝ์ ์ ๋ ฌ์ ํ์ํ ๋๋ง ๋ฐ์ดํฐ๋ฅผ ๋น๊ตํ๊ณ ์ฝ์ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ์ด๋ ์ ๋ ์ ๋ ฌ๋์ด ์์ ๋ ๋์ฑ ํจ์จ์ ์ผ๋ก ๋์ํฉ๋๋ค. ์ด๋ฌํ ํน์ง ๋๋ถ์ ์ ๋ ฌ ์ํ์ ์๊ด์์ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์ผ์ด ๋น๊ตํ๋ฉฐ ์ ๋ ฌํ๋ ๋ฐฉ์์ธ ์ ํ ์ ๋ ฌ๋ณด๋ค ์ผ๋ฐ์ ์ผ๋ก ํจ์จ์ ์ ๋๋ค. [์๊ณ ๋ฆฌ์ฆ] ์ ํ ์ ๋ ฌ์ ๋ํด ์์๋ณด์! (+Python ๊ตฌํ) ์ค๋์ ์ ํ ์ ๋ ฌ(selection sort) ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ณด๋๋ก ํ..
๋ณธ ํฌ์คํ ์์๋ ์ ํ ์ ๋ ฌ(selection sort) ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. ์ ํ ์ ๋ ฌ์ด๋? 2. ์ ํ ์ ๋ ฌ์ ๋์ ๊ณผ์ 3. ์ ํ ์ ๋ ฌ ๊ตฌํ(Python) 4. ์ ํ ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋ 1. ์ ํ ์ ๋ ฌ์ด๋? ์ ํ ์ ๋ ฌ์ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๋ฌด์์๋ก ์์ ๋ ์ ์ฒด ๋ฐ์ดํฐ์์ ๋งค๋ฒ ๊ฐ์ฅ ์์(๋๋ ๊ฐ์ฅ ํฐ) ๋ฐ์ดํฐ๋ฅผ ์ ํํ์ฌ ๋ฐ์ดํฐ ๊ฐ์ ์์น๋ฅผ ๋ณ๊ฒฝํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ค๋ฆ์ฐจ์(๋๋ ๋ด๋ฆผ์ฐจ์)์ผ๋ก ์ ๋ ฌํ ๋ ์ฌ์ฉํฉ๋๋ค. ์ ํ ์ ๋ ฌ์ ์ข ๋ฅ๋ 2๊ฐ์ง๋ก ๋๋ ์ ์์ต๋๋ค. ์ต์ ์ ํ ์ ๋ ฌ(Min-selection sort): ๋งค๋ฒ ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ ๋ฐ์ดํฐ ๊ฐ์ ๋ฐฐ์น๋ฅผ ๋ณ๊ฒฝํ๋ฉฐ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ ์ต๋ ์ ํ ์ ๋ ฌ(Max-selection sort): ๋งค๋ฒ ๊ฐ์ฅ ํฐ ๋ฐ์ดํฐ๋ฅผ ..
๋ณธ ํฌ์คํ ์์๋ ๋๋น ์ฐ์ ํ์์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ BFS(Breadth-First Search)์ ๋ํด ์์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. BFS ์๊ณ ๋ฆฌ์ฆ์ด๋? 2. BFS ์๊ณ ๋ฆฌ์ฆ ๋์ ๊ณผ์ 3. BFS ํ์ด์ฌ ๊ตฌํ 3.1. ์์ค์ฝ๋ ์ค๋ช 3.2. ์ ์ฒด ์์ค์ฝ๋ 1. BFS ์๊ณ ๋ฆฌ์ฆ์ด๋? BFS(Breadth-First Search)๋ ๋๋น ์ฐ์ ํ์์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ ๊ทธ๋ํ์์ ์์ ๋ ธ๋์ ์ธ์ ํ ๋ ธ๋๋ถํฐ ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. BFS ์๊ณ ๋ฆฌ์ฆ์ ์ธ์ ์ฌ์ฉํ๋ฉด ์ข์๊น์? BFS ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ๋ก ๊ทธ๋ํ์์ ๋ชจ๋ ๊ฐ์ ์ ๋น์ฉ์ด ๋์ผํ ์กฐ๊ฑด์์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ "๋ฏธ๋ก๋ฅผ ๋น ์ ธ๋๊ฐ๋ ์ต๋จ ๊ฑฐ๋ฆฌ(๊ฒฝ๋ก)"๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ฑ์์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค...
๋ณธ ํฌ์คํ ์์๋ ๊น์ด ์ฐ์ ํ์ DFS(Depth-First Search) ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. DFS ์๊ณ ๋ฆฌ์ฆ์ด๋? 2. DFS ์๊ณ ๋ฆฌ์ฆ ๋์ ๊ณผ์ 3. DFS ํ์ด์ฌ ๊ตฌํ 1. DFS ์๊ณ ๋ฆฌ์ฆ์ด๋? DFS(Depth-First Search)๋ ๊ทธ๋ํ ์ ์ฒด๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ(i.e., ์์ ํ์) ์ค ํ๋๋ก, '๊น์ด'๋ฅผ ์ฐ์ ์ ์ผ๋ก ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. DFS๋ ํ ๋ ธ๋๋ฅผ ์์์ผ๋ก ๋ค์ ๋ถ๊ธฐ(branch)๋ก ๋์ด๊ฐ๊ธฐ ์ ์ ํด๋น ๋ถ๊ธฐ๋ฅผ ์๋ฒฝํ๊ฒ ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, DFS ์๊ณ ๋ฆฌ์ฆ์ ๋ฏธ๋ก ํ์ ์ ํ ๋ฐฉํฅ์ผ๋ก ๋ชจ๋ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๋ค๊ฐ ๋ ์ด์ ๋ค๋ฅธ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ ์ ์๋ ๋ ธ๋์ ์ด๋ฅด๋ ์ ๋, ๋ค์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ๋๊ธธ๋ก ๋์๊ฐ ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋ ๋ฐฉํฅ์ผ๋ก ํ์์ ์ด์ด๊ฐ๋ ๋ฐฉ๋ฒ์ ๋๋ค...
๋ณธ ํฌ์คํ ์์๋ ํ(Queue) ์๋ฃ๊ตฌ์กฐ์ ๋ํด ์์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. ํ(Queue) ์๋ฃ๊ตฌ์กฐ๋? 2. ํ ๋์ ์์ 3. ํ ๊ตฌํ(Python) 1. ํ(Queue) ์๋ฃ๊ตฌ์กฐ๋? ํ ์๋ฃ๊ตฌ์กฐ๋ ์ ์ ์ ์ถ(ๅ ๅ ฅๅ ๅบ, First In First Out, ์ค์ฌ์ FIFO) ๊ตฌ์กฐ๋ก ํํ ๋์ด๊ณต์ ๋ด ๋์ด๊ธฐ๊ตฌ ๋๊ธฐ์ค์ ๋น์ ํฉ๋๋ค(๊ทธ๋ฆผ 1 ์ฐธ๊ณ ). ์ฆ, ๋์ด๊ธฐ๊ตฌ ๋๊ธฐ์ค์ ๋จผ์ ์ ์ฌ๋(๋ฐ์ดํฐ ์ ๋ ฅ)์ด ๋จผ์ ๋์ด๊ธฐ๊ตฌ๋ฅผ ํ๋(๋ฐ์ดํฐ ์ถ๋ ฅ/์ ๊ฑฐ) ๋ฐฉ์์ ๋๋ค(๋จ, ์์น๊ธฐ๋ ์๋ค๊ณ ๊ฐ์ ). ํ ์๋ฃ๊ตฌ์กฐ๋ ์๋ 2๊ฐ์ง ํต์ฌ์ ์ธ ํจ์๋ก ๋์ํฉ๋๋ค. ๋ฐ์ดํฐ ์ฝ์ (append) ๋ฐ์ดํฐ ์ญ์ (popleft) ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ ๋๋ ์ค๋ฒํ๋ก์ฐ(Overflow)์ ์ธ๋ํ๋ก์ฐ(Underflow)๊ฐ ๋ฐ์ํ์ง ์๋๋ก ์ ์ํด์ผ ํฉ๋๋ค..
์๋ ํ์ธ์, ์ค๋์ ํ์ด์ฌ์ pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐํ๋ ์์ ์นผ๋ผ ์ด๋ฆ์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ณต์ ํด ๋๋ฆฝ๋๋ค. ๊ทธ๋ผ ๋ฐ๋ก ์์ํ์ฃ ! ๋ชฉ์ฐจ 1. ๋ฐ์ดํฐํ๋ ์ ์ ์ 2. ์นผ๋ผ ์ด๋ฆ ๋ณ๊ฒฝํ๊ธฐ 2.1. columns ํจ์: ์๋ก์ด ์นผ๋ผ ์ด๋ฆ์ผ๋ก ๋ฎ์ด์ฐ๊ธฐ 2.2. rename ํจ์: ํน์ ์นผ๋ผ๋ง ์ง์ ํ์ฌ ์ด๋ฆ ๋ณ๊ฒฝํ๊ธฐ 2.3. lambda ํจ์: ๊ธฐ์กด ์นผ๋ผ ์ด๋ฆ์ ์๋ก์ด ํจํด ์ถ๊ฐํ๊ธฐ 1. ๋ฐ์ดํฐํ๋ ์ ์ ์ ํ๋ค์ค ๋ชจ๋ ์ค์นํ๊ธฐ pip install pandas ํ๋ค์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ์ง ์์ผ์ จ๋ค๋ฉด ์ค์นํด ์ฃผ์ธ์. ํ๋ค์ค ๋ชจ๋ ๋ถ๋ฌ์ค๊ธฐ import pandas as pd ํ๋ค์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์ต๋๋ค. ๋ฐ์ดํฐํ๋ ์ ์์ฑ df = pd.DataFrame({"์๋ณ๋ฒํธ": [1, 2, 3, 4, 5..