์๋์ด ๊ฐ๋ฐ์๋ฅผ ์ํ ๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ ๋ฌธ ์์ด์ ํธ ์์คํ
Claude Code์์ ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ํตํฉ ๋ฒ์ ์ ๋๋ค!
Claude Code์ ๋ํํ๋ฉด์ ๋ค์ ๊ธฐ๋ฅ์ ์์ฐ์ด๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค:
- ๐ ์๋์ด ์ฝ๋ ๋ฆฌ๋ทฐ - ์ฑ๋ฅ ์ต์ ํ, ์๋ฃ๊ตฌ์กฐ ๊ฐ์ , ํ์ง ์ฒดํฌ
- ๐ฏ ๋ฌธ์ ๋ถ์ - ์๊ณ ๋ฆฌ์ฆ ๋ฐฉํฅ์ฑ ์ ์ (ํํธ ์ต์ํ)
- ๐ก ํํธ ์ ๊ณต - ๋ช ์์ ์์ฒญ์ ๋ฐ๋ก ๋ฐ ์์ธ ํํธ
- โฑ๏ธ ๋ณต์ก๋ ๋ถ์ - ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ + ์ํ์ ์ค๋ช
cd /Users/hanjeonghee/PycharmProjects/algorithm
./setup_claude_mcp.sh# Claude Code ์ข
๋ฃ ํ ์ฌ์คํClaude Code์์ ๋ค์๊ณผ ๊ฐ์ด ๋ํํ์ธ์:
๐ค "Sovled/Class2/stack.py ํ์ผ์ review_code ๋๊ตฌ๋ก ๋ฆฌ๋ทฐํด์ค"
๐ค "์ด ์ฝ๋์ ์๊ฐ๋ณต์ก๋๋ฅผ analyze_complexity๋ก ๋ถ์ํด์ค"
[์ฝ๋ ๋ถ์ฌ๋ฃ๊ธฐ]
๐ค "N๊ฐ์ ์๋ฅผ ์ ๋ ฌํ๋ ๋ฌธ์ ์ธ๋ฐ analyze_problem์ผ๋ก ๋ฐฉํฅ์ฑ ์๋ ค์ค"
๐ค "์ด ์ฝ๋๋ฅผ provide_hints๋ก ํํธ ๋ฌ๋ผ"
[์ฝ๋ ๋ถ์ฌ๋ฃ๊ธฐ]
Claude๊ฐ ์๋์ผ๋ก ์ ์ ํ ๋๊ตฌ๋ฅผ ํธ์ถํฉ๋๋ค!
algorithm/
โโโ agents/ # ์์ด์ ํธ ๋ชจ๋
โ โโโ __init__.py
โ โโโ code_reviewer.py # ์๋์ด ์ฝ๋ ๋ฆฌ๋ทฐ์ด
โ โโโ problem_analyzer.py # ๋ฌธ์ ๋ถ์๊ฐ
โ โโโ complexity_analyzer.py # ๋ณต์ก๋ ๋ถ์๊ฐ
โ โโโ main.py # ๋
๋ฆฝ ์คํ์ฉ
โ โโโ README.md
โ
โโโ mcp_server/ # Claude Code ํตํฉ
โ โโโ algorithm_agent_server.py # MCP ์๋ฒ
โ โโโ pyproject.toml
โ โโโ README.md
โ
โโโ Sovled/ # ๋ฐฑ์ค ๋ฌธ์ ํ์ด
โ โโโ Class2/
โ โโโ stack.py
โ โโโ fizz_buzz.py
โ โโโ ...
โ
โโโ setup_claude_mcp.sh # ์๋ ์ค์ ์คํฌ๋ฆฝํธ โญ
โโโ CLAUDE_SETUP.md # ์์ธ ์ค์ ๊ฐ์ด๋
โโโ claude_code_config.json # ์ค์ ํ
ํ๋ฆฟ
โโโ README.md # ์ด ํ์ผ
๋ชฉ์ : ์ฑ์ฅ์ ์ํ ์๊ฒฉํ ์ฝ๋ ๋ฆฌ๋ทฐ
๋ถ์ ํญ๋ชฉ:
- ๐ฅ ์ฑ๋ฅ ์ด์ (input() vs readline, ์ ๋ ฌ ์ค๋ณต, ๋นํจ์จ์ ์ฐ์ฐ)
- ๐ ์๋ฃ๊ตฌ์กฐ ์ต์ ํ (list โ set, Counter, deque ๋ฑ)
โ ๏ธ ์๋์ด ๋ ๋ฒจ ์ฒดํฌ (๋งค์ง ๋๋ฒ, ๋ณ์๋ช , ์์ธ์ฒ๋ฆฌ)- ๐ก ์ถ๊ฐ ์ต์ ํ ๊ธฐํ
์์ ์ถ๋ ฅ:
================================================================================
๐ SENIOR CODE REVIEW REPORT
================================================================================
์ข
ํฉ ํ๊ฐ: ๐ด ์ฌ๋ฌ ์ต์ ํ ๊ธฐํ๊ฐ ์์ต๋๋ค. ์๋์ด ๋ ๋ฒจ์ด๋ผ๋ฉด ๋ฐ๋์ ๊ฐ์ ์ด ํ์ํฉ๋๋ค.
๐ฅ ์ฑ๋ฅ ์ด์
[1] ์
๋ ฅ ์ฒ๋ฆฌ ๋นํจ์จ [HIGH]
์์ธ: input() ๋์ sys.stdin.readline() ์ฌ์ฉ ํ์
์ด์ : ๋ค์ค ์
๋ ฅ์ ์ฝ 2-3๋ฐฐ ์ฑ๋ฅ ์ฐจ์ด
ํด๊ฒฐ: import sys; input = sys.stdin.readline
๐ ์๋ฃ๊ตฌ์กฐ ์ต์ ํ ์ ์
[1] list โ set or dict
์ด์ : in ์ฐ์ฐ: list O(n) vs set O(1)
์ํฅ: ๋์ฉ๋ ๋ฐ์ดํฐ์ ์๋ฐฑ๋ฐฐ ์ฐจ์ด
์์: allowed = set([1, 2, 3])
๋ชฉ์ : ๋ฐฉํฅ์ฑ๋ง ์ ์ (์ค์ค๋ก ์๊ฐํ๊ฒ)
๋ถ์ ํญ๋ชฉ:
- ๐ ๋ฐฉํฅ์ฑ (์๊ฐ๋ณต์ก๋ ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ ์ ํ)
- ๐งฎ ์ ์ ์๊ณ ๋ฆฌ์ฆ (DP, Greedy, Graph ๋ฑ)
- ๐ฆ ์ ์ ์๋ฃ๊ตฌ์กฐ
โ ๏ธ ํ์ฌ ์ ๊ทผ์ ๋ฌธ์ ์ (์ฝ๋๊ฐ ์์ ๋)
์์ ์ถ๋ ฅ:
================================================================================
๐ฏ PROBLEM ANALYSIS
================================================================================
๐ ๋ฐฉํฅ์ฑ
N์ด 10^5 ์์ค โ O(n log n) ์ดํ ์๊ณ ๋ฆฌ์ฆ ํ์ | ์ ๋ ฌ ๊ธฐ๋ฐ ์ ๊ทผ ๊ณ ๋ ค
๐งฎ ์ ์ ์๊ณ ๋ฆฌ์ฆ
Sort, Search
๐ฆ ์ ์ ์๋ฃ๊ตฌ์กฐ
โข Hash (set/dict/Counter)
์ด์ : O(1) ๊ฒ์/์นด์ดํ
ํํธ: collections.Counter ๊ณ ๋ ค
๋ชฉ์ : ๋ช ์์ ์์ฒญ์์๋ง ์์ธ ํํธ + ๋ฐ๋ก
์ ๊ณต ์ ๋ณด:
- ๐ก ๊ตฌ์ฒด์ ํํธ (๋ฌธ์ ์ ์ง์ )
- ๐งช ๋ฐ๋ก ("์ ๋ ฅ X โ ๊ธฐ๋๊ฐ A, ์ค์ B")
์์ ์ถ๋ ฅ:
๐ก ํํธ
โ ๏ธ i+1 ์ธ๋ฑ์ค ์ ๊ทผ - ๋ฒ์ ์ด๊ณผ ๊ฐ๋ฅ์ฑ ์ฒดํฌ
โ ๏ธ ๋น ๋ฆฌ์คํธ ์ ๊ทผ ๊ฐ๋ฅ์ฑ - ์์ธ์ฒ๋ฆฌ ํ์
๐งช ๋ฐ๋ก ์ฒดํฌ
[์กฐ๊ฑด๋ฌธ ๋ฐ๋ก]
ํํธ: ์กฐ๊ฑด์ ๊ฒฝ๊ณ๊ฐ๊ณผ ๋ฐ๋ ์ผ์ด์ค๋ฅผ ํ
์คํธํด๋ณด์ธ์
์์: if x > 0 ์ด๋ฉด โ x=0, x=-1 ์ผ์ด์ค ํ์ธ
[์ผ๋ฐ ์ฒดํฌ๋ฆฌ์คํธ]
1. ์ต์ ์
๋ ฅ (N=1, ๋น ๋ฐฐ์ด ๋ฑ)
2. ์ต๋ ์
๋ ฅ (์๊ฐ์ด๊ณผ ์ฒดํฌ)
3. ๋ชจ๋ ๊ฐ์ด ๋์ผ
๋ชฉ์ : ์์ธํ ์ํ์ ๋ณต์ก๋ ๋ถ์
๋ถ์ ํญ๋ชฉ:
- โฑ๏ธ ์๊ฐ ๋ณต์ก๋ (Big-O)
- ๐พ ๊ณต๊ฐ ๋ณต์ก๋
- ๐ ๋ผ์ธ๋ณ ๋ณต์ก๋
- ๐ ์ํ์ ์ค๋ช (Big-O ์ ์, ์ฆ๋ช )
- ๐ข ์ฐ์ฐ ํ์ ์ถ์
์์ ์ถ๋ ฅ:
================================================================================
โฑ๏ธ TIME & SPACE COMPLEXITY ANALYSIS
================================================================================
๐ ์ข
ํฉ ๊ฒฐ๊ณผ
์๊ฐ ๋ณต์ก๋: O(n^2)
๊ณต๊ฐ ๋ณต์ก๋: O(n)
๐ด ์ต์ ํ ๊ฐ๋ฅ - ๊ฐ์ ์ฌ์ง ์์
๐ ๋ผ์ธ๋ณ ๋ถ์
L 8 | O(n) | for i in range(n):
โ n๋ฒ ๋ฐ๋ณต (์ฐ์ฐ: n)
L 9 | O(n) | for j in range(n-1):
โ n-1๋ฒ ๋ฐ๋ณต (์ฐ์ฐ: n-1)
๐ ์๊ฐ๋ณต์ก๋ ์ํ์ ๋ถ์
Big-O ํ๊ธฐ๋ฒ: ์
๋ ฅ ํฌ๊ธฐ n์ด ์ถฉ๋ถํ ํด ๋, ์๊ณ ๋ฆฌ์ฆ์ ์ต์
์ํ์๊ฐ
์ ์: T(n) = O(f(n)) โบ โc, nโ > 0, โn โฅ nโ: T(n) โค cยทf(n)
O(n^2) - ์ด์ฐจ ์๊ฐ
์ด์ค ์ค์ฒฉ ๋ฃจํ
โ(i=1 to n) โ(j=1 to n) 1 = nยฒ
์ฃผ์: n=10,000์ด๋ฉด 100,000,000 ์ฐ์ฐ (1์ต)
๐ข ์ค์ ์ฐ์ฐ ํ์ ์ถ์
์
๋ ฅ ํฌ๊ธฐ n = 10,000
์์ ์ฐ์ฐ ํ์: 100,000,000
์์ ์์ ์๊ฐ: 1.0์ด
์คํ ๊ฐ๋ฅ ์ฌ๋ถ: โ ๏ธ ์ํ (์ต์ ํ ํ์)
# ์ฝ๋ ๋ฆฌ๋ทฐ
"์ด ํ์ผ์ review_code๋ก ๋ฆฌ๋ทฐํด์ค: Sovled/Class2/stack.py"
# ๋ฌธ์ ๋ถ์
"N๊ฐ์ ์๋ฅผ ์ ๋ ฌํ๋ ๋ฌธ์ ์ธ๋ฐ N โค 100,000์ด์ผ.
analyze_problem์ผ๋ก ๋ฐฉํฅ์ฑ ์๋ ค์ค"
# ํํธ ์์ฒญ
"์ด ์ฝ๋๊ฐ ์ ํ๋ ธ๋์ง provide_hints๋ก ๋ฐ๋ก ํฌํจํด์ ์๋ ค์ค"
[์ฝ๋]
# ๋ณต์ก๋ ๋ถ์
"์ด ์ฝ๋๋ฅผ n=100000์ผ๋ก analyze_complexity ํด์ค"
[์ฝ๋]
# ์ฝ๋ ๋ฆฌ๋ทฐ
python3 agents/main.py review Sovled/Class2/stack.py
# ๋ฌธ์ ๋ถ์
python3 agents/main.py analyze "N๊ฐ์ ์๋ฅผ ์ ๋ ฌํ์์ค"
# ํํธ ์ ๊ณต
python3 agents/main.py hint Sovled/Class2/fizz_buzz.py
# ๋ณต์ก๋ ๋ถ์
python3 agents/main.py complexity Sovled/Class2/prime_number.py 100000
# ์ ์ฒด ๋ถ์
python3 agents/main.py all Sovled/Class2/stack_progression.py./setup_claude_mcp.sh์คํฌ๋ฆฝํธ๊ฐ ์๋์ผ๋ก:
- Python ๊ฒฝ๋ก ํ์ธ
- Claude Code ์ค์ ํ์ผ ์ ๋ฐ์ดํธ
- ์คํ ๊ถํ ์ค์
~/.config/claude/settings.json์ ์ถ๊ฐ:
{
"mcpServers": {
"algorithm-agent": {
"command": "python3",
"args": [
"/Users/hanjeonghee/PycharmProjects/algorithm/mcp_server/algorithm_agent_server.py"
],
"description": "์๋์ด ๊ฐ๋ฐ์๋ฅผ ์ํ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์์ด์ ํธ"
}
}
}์์ธํ ๋ด์ฉ์ CLAUDE_SETUP.md๋ฅผ ์ฐธ๊ณ ํ์ธ์.
"์ด ๋ฌธ์ ๋ฅผ analyze_problem์ผ๋ก ๋ถ์ํด์ค:
N๊ฐ์ ์๋ฅผ ์ ๋ ฌํ๋๋ฐ N โค 100,000"
โ ๋ฐฉํฅ์ฑ ํ์ (O(n log n) ์๊ณ ๋ฆฌ์ฆ ํ์)
"์ด ์ฝ๋๋ฅผ provide_hints๋ก ํํธ ์ค"
[์ฝ๋]
โ ๋ฐ๋ก ๋ฐ ๋ฌธ์ ์ ํ์ธ
"์ด ์ฝ๋๋ฅผ review_code๋ก ๋ฆฌ๋ทฐํด์ค"
[์ฝ๋]
โ ์ฑ๋ฅ ์ต์ ํ ๋ฐ ๊ฐ์ ์ ํ์ธ
"์ด ์ฝ๋๋ฅผ analyze_complexity๋ก ๋ถ์ํด์ค"
[์ฝ๋]
โ ๋ณต์ก๋ ํ์ธ ๋ฐ ์ต์ ํ ๋ฐฉํฅ ํ์
-
์๋ฒ ์ง์ ํ ์คํธ:
python3 mcp_server/algorithm_agent_server.py
-
Python ๊ฒฝ๋ก ํ์ธ:
which python3
์ค์ ํ์ผ์
command๋ฅผ ์ค์ ๊ฒฝ๋ก๋ก ๋ณ๊ฒฝ -
๊ถํ ํ์ธ:
chmod +x mcp_server/algorithm_agent_server.py
-
Claude Code ์ฌ์์
- Claude Code ์์ ์ข ๋ฃ ํ ์ฌ์์
~/.config/claude/settings.json๋ฌธ๋ฒ ํ์ธ- ๋ก๊ทธ ํ์ธ:
~/.config/claude/logs/
- CLAUDE_SETUP.md - Claude Code ์ค์ ๊ฐ์ด๋
- agents/README.md - ์์ด์ ํธ ๋ชจ๋ ์์ธ
- mcp_server/README.md - MCP ์๋ฒ ์์ธ
์ด ์์ด์ ํธ๋ค์ ๋ค์ ์์น์ ๋ฐ๋ฆ ๋๋ค:
- ์์จ์ฑ ์กด์ค - ๋ต์ ์ฃผ์ง ์๊ณ ๋ฐฉํฅ์ฑ๋ง ์ ์
- ์๋์ด ๋ ๋ฒจ ๊ธฐ์ค - ๋์ ๊ธฐ์ค์ผ๋ก ์ฝ๋ ํ์ง ํ๊ฐ
- ์ํ์ ์ดํด - ๋ณต์ก๋์ ์ํ์ ๊ทผ๊ฑฐ ์ ๊ณต
- ์ฑ์ฅ ์ค์ฌ - ๊ฐ์ ๊ณผ ํ์ต์ ์ํ ํผ๋๋ฐฑ
- Python 3.9+
- Claude Code (์ต์ ๋ฒ์ ๊ถ์ฅ)
- ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ถํ์ (ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ์ฌ์ฉ)
- ๋ ๋ง์ ์๊ณ ๋ฆฌ์ฆ ํจํด ์ธ์
- ๋ฐฑ์ค API ์ฐ๋ (๋ฌธ์ ์๋ ๋ค์ด๋ก๋)
- ์๋ ํ ์คํธ ์ผ์ด์ค ์์ฑ
- ์ต์ ํ ์ ์์ ์ ํ๋ ๊ฐ์
MIT License
๋ง๋ ์ด: ์๋์ด ๊ฐ๋ฐ์๋ฅผ ์ํ ์ฑ์ฅ ๋๊ตฌ ๋ฒ์ : 1.0.0 ๋ง์ง๋ง ์ ๋ฐ์ดํธ: 2026-02-02
Claude Code์ ํจ๊ป ์๊ณ ๋ฆฌ์ฆ ์ค๋ ฅ์ ํฅ์์ํค์ธ์! ๐