์ด ํ๋ก์ ํธ๋ ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ์ ๋์ ๊ณผ์ ์ ์๊ฐ์ ์ผ๋ก ์ดํดํ๊ธฐ ์ฝ๊ฒ ๊ตฌํํ ๊ต์ก์ฉ ๋๊ตฌ์ ๋๋ค.
- k๋ฒ์งธ๋ก ์์ ์์๋ฅผ ์ฐพ๋ ์ ํ ์๊ณ ๋ฆฌ์ฆ
- ์ต์ ์ ๊ฒฝ์ฐ์๋ O(n) ์๊ฐ๋ณต์ก๋ ๋ณด์ฅ
- ๋จ๊ณ๋ณ ์คํ ๊ณผ์ ์๊ฐํ
- NรN ์ฒด์คํ์ N๊ฐ์ ํธ์ ์๋ก ๊ณต๊ฒฉํ ์ ์๊ฒ ๋ฐฐ์นํ๋ ๋ฌธ์
- ๋ฐฑํธ๋ํน ์๊ณ ๋ฆฌ์ฆ์ ํตํ ํด๊ฒฐ ๊ณผ์
- matplotlib์ ํ์ฉํ ์ฒด์คํ ์๊ฐํ
project/ โโโ select/ # ์ ํ ์๊ณ ๋ฆฌ์ฆ โ โโโ init.py โ โโโ MoM.py # Median of Medians ๊ตฌํ โโโ backtracking/ # ๋ฐฑํธ๋ํน ์๊ณ ๋ฆฌ์ฆ โ โโโ init.py โ โโโ n_queens.py # N-Queens ๋ฌธ์ ๊ตฌํ โ โโโ n_queens.ipynb # ์๊ฐํ Jupyter ๋ ธํธ๋ถ โโโ requirements.txt # ํ๋ก์ ํธ ์์กด์ฑ โโโ .gitignore # Git ์ ์ธ ํ์ผ ๋ชฉ๋ก โโโ README.md # ํ๋ก์ ํธ ๋ฌธ์ โโโ .vscode/ # VS Code ์ค์ โโโ settings.json # ํธ์ง๊ธฐ ์ค์
# ๊ฐ์ํ๊ฒฝ ์์ฑ
python -m venv venv
# ๊ฐ์ํ๊ฒฝ ํ์ฑํ
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate# ์์กด์ฑ ํจํค์ง ์ค์น
pip install -r requirements.txtrequirements.txt ๋ด์ฉ:
matplotlib>=3.9.0
numpy>=1.24.0
jupyter>=1.0.0
ipykernel>=6.0.0
ํ๋ก์ ํธ๋ VS Code๋ฅผ ๊ธฐ๋ณธ IDE๋ก ์ฌ์ฉํฉ๋๋ค. .vscode/settings.json์ ๋ค์๊ณผ ๊ฐ์ ์ค์ ์ด ํฌํจ๋์ด ์์ต๋๋ค:
- Python ์ธํฐํ๋ฆฌํฐ: ๊ฐ์ํ๊ฒฝ์ Python ์ฌ์ฉ
- ํญ ํฌ๊ธฐ: 4์นธ
- ์ ์ฅ ์ ์๋ ํฌ๋งทํ
- Python ํ์ผ์์ ํญ ์ฌ์ฉ
-
๊ฐ์ํ๊ฒฝ ์ธ์ ์ ๋จ
- VS Code์์ Python ์ธํฐํ๋ฆฌํฐ ์๋ ์ ํ
Ctrl/Cmd + Shift + Pโ "Python: Select Interpreter" โ venv ์ ํ
-
matplotlib ๊ทธ๋ํ๊ฐ ํ์๋์ง ์์
- Jupyter Notebook ์ฌ์ฉ
%matplotlib inline๋งค์ง ์ปค๋งจ๋ ์คํ
- Windows: ๊ฐ์ํ๊ฒฝ ์คํ ์ ์ฑ ์ค์ ํ์ํ ์ ์์
- macOS: XCode ์ปค๋งจ๋๋ผ์ธ ๋๊ตฌ ์ค์น ํ์ํ ์ ์์