Skip to content

nahyun27/algotrace

Repository files navigation

AlgoTrace

Interactive algorithm visualizer λ³΅μž‘ν•œ μ•Œκ³ λ¦¬μ¦˜μ„ ν•œ 단계씩 눈으둜 μ΄ν•΄ν•˜λŠ” μΈν„°λž™ν‹°λΈŒ μ‹œκ°ν™” ν”Œλž«νΌ

Live Demo

React TypeScript Vite Tailwind CSS

AlgoTrace Home


μ†Œκ°œ

μ•Œκ³ λ¦¬μ¦˜μ˜ μ‹€ν–‰ 흐름을 λ‹¨κ³„λ³„λ‘œ μ‹œκ°ν™”ν•˜λŠ” μΈν„°λž™ν‹°λΈŒ ν•™μŠ΅ μ‚¬μ΄νŠΈμž…λ‹ˆλ‹€.

κ·Έλž˜ν”„ 탐색, DP ν…Œμ΄λΈ” κ°±μ‹ , μ†ŒμŠ€ μ½”λ“œ ν•˜μ΄λΌμ΄νŒ…μ΄ μŠ€ν…λ§ˆλ‹€ λ™κΈ°ν™”λ˜μ–΄ μ•Œκ³ λ¦¬μ¦˜μ˜ 흐름을 μ§κ΄€μ μœΌλ‘œ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€. μ»€μŠ€ν…€ κ·Έλž˜ν”„ μ—λ””ν„°λ‘œ 직접 κ·Έλž˜ν”„λ₯Ό κ·Έλ € μ‹€ν–‰ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.


데λͺ¨

Kruskal MST Demo


μ£Όμš” κΈ°λŠ₯

단계별 μ‹œκ°ν™”

  • 이전 / λ‹€μŒ / μžλ™μž¬μƒ 으둜 μ•Œκ³ λ¦¬μ¦˜ μ‹€ν–‰ 흐름을 ν•œ μŠ€ν…μ”© μ œμ–΄
  • 각 μŠ€ν…λ§ˆλ‹€ κ·Έλž˜ν”„, ν…Œμ΄λΈ”, μ½”λ“œ κ°€ λ™κΈ°ν™”λ˜μ–΄ μ—…λ°μ΄νŠΈ
  • ν˜„μž¬ μŠ€ν…μ—μ„œ 무슨 일이 μΌμ–΄λ‚˜λŠ”μ§€ ν•œ 쀄 μ„€λͺ… 제곡

λ°©ν–₯ κ·Έλž˜ν”„ λ Œλ”λ§

  • λ°©λ¬Έ μ—¬λΆ€, ν˜„μž¬ μœ„μΉ˜, 이동 λŒ€μƒμ„ μƒ‰μƒμœΌλ‘œ ꡬ뢄
  • κ°„μ„  κ°€μ€‘μΉ˜, λ°©ν–₯ ν™”μ‚΄ν‘œ ν‘œμ‹œ

μ»€μŠ€ν…€ κ·Έλž˜ν”„ 에디터

  • μ»€μŠ€ν…€ κ·Έλž˜ν”„ μ—λ””ν„°λ‘œ 직접 λ…Έλ“œ/κ°„μ„  μΆ”κ°€ ν›„ μ‹œκ°ν™” μ‹€ν–‰

μ•Œκ³ λ¦¬μ¦˜λ³„ νŠΉν™” μ‹œκ°ν™”

  • TSP β€” dp[mask][city] 2D ν…Œμ΄λΈ”, Top-down / Bottom-up ν† κΈ€ 비ꡐ
  • λ‹€μ΅μŠ€νŠΈλΌ β€” 거리 λ°°μ—΄ + μš°μ„ μˆœμœ„ 큐 μƒνƒœ μ‹€μ‹œκ°„ ν‘œμ‹œ
  • A* β€” g(x), h(x), f(x) μŠ€μ½”μ–΄ ν…Œμ΄λΈ”, νœ΄λ¦¬μŠ€ν‹± λ°©ν–₯ 점선
  • 벨만-ν¬λ“œ β€” λΌμš΄λ“œλ³„ κ°±μ‹  횟수 λ°” 차트, 음수 사이클 감지
  • ν”Œλ‘œμ΄λ“œ-μ›Œμ…œ β€” NΓ—N ν–‰λ ¬ 전체 κ°±μ‹ , 경유 λ…Έλ“œ k κ°•μ‘°
  • BFS / DFS β€” 큐/μŠ€νƒ μ‹€μ‹œκ°„ μ‹œκ°ν™”, λ°©λ¬Έ μˆœμ„œ 비ꡐ
  • μœ„μƒμ •λ ¬ β€” 칸의 μ•Œκ³ λ¦¬μ¦˜(μ§„μž…μ°¨μˆ˜) + DFS 방식 비ꡐ
  • 크루슀칼 / ν”„λ¦Ό β€” Union-Find 트리/λ°°μ—΄ λ·°, μ •λ ¬λœ κ°„μ„  λͺ©λ‘

μ†ŒμŠ€ μ½”λ“œ λ·°μ–΄

  • ν˜„μž¬ μ‹€ν–‰ 쀑인 μ½”λ“œ 라인 ν•˜μ΄λΌμ΄νŒ…
  • μ½”λ“œ 전체 볡사 λ²„νŠΌ
  • μ•Œκ³ λ¦¬μ¦˜ λ³€ν˜•(Top-down / Bottom-up) μ „ν™˜ μ‹œ μ½”λ“œλ„ ν•¨κ»˜ μ „ν™˜

ν•™μŠ΅ 지원

  • μ•Œκ³ λ¦¬μ¦˜λ³„ "~λž€?" λͺ¨λ‹¬ β€” 문제 μ •μ˜, 핡심 아이디어, λ³΅μž‘λ„
  • κ΄€λ ¨ λ°±μ€€ 문제 β€” λ‚œμ΄λ„, N λ²”μœ„, λ³΅μž‘λ„ 정보 포함
  • μΉ΄ν…Œκ³ λ¦¬ / νŒ¨λŸ¬λ‹€μž„λ³„ 검색 및 ν•„ν„°

UX

  • 닀크λͺ¨λ“œ 지원
  • λ°˜μ‘ν˜• β€” λͺ¨λ°”μΌμ—μ„œλ„ λ™μž‘
  • 쒁은 ν™”λ©΄μ—μ„œ 햄버거 메뉴 + μ½”λ“œ λ“œλ‘œμ–΄ 둜 μ „ν™˜

κ΅¬ν˜„λœ μ•Œκ³ λ¦¬μ¦˜

μ•Œκ³ λ¦¬μ¦˜ μΉ΄ν…Œκ³ λ¦¬ νŒ¨λŸ¬λ‹€μž„ μ‹œκ°„λ³΅μž‘λ„ λ‚œμ΄λ„
BFS / DFS κ·Έλž˜ν”„ 탐색 Traversal O(V+E) Easy
λ‹€μ΅μŠ€νŠΈλΌ μ΅œλ‹¨κ²½λ‘œ Greedy O((V+E) log V) Medium
벨만-ν¬λ“œ μ΅œλ‹¨κ²½λ‘œ DP O(VE) Medium
ν”Œλ‘œμ΄λ“œ-μ›Œμ…œ μ΅œλ‹¨κ²½λ‘œ DP O(VΒ³) Medium
A* μ΅œλ‹¨κ²½λ‘œ Greedy O(E log V) Medium
μœ„μƒμ •λ ¬ κ·Έλž˜ν”„ 탐색 Traversal O(V+E) Medium
크루슀칼 / ν”„λ¦Ό MST Greedy O(E log E) Medium
TSP (μ™ΈνŒμ› 순회) μ΅œμ ν™” DP O(NΒ² Γ— 2^N) Hard

μ‹œμž‘ν•˜κΈ°

μš”κ΅¬μ‚¬ν•­: Node.js 20.19+ λ˜λŠ” 22.12+

git clone https://github.com/nahyun27/algotrace.git
cd algotrace
npm install
npm run dev

λΈŒλΌμš°μ €μ—μ„œ http://localhost:5173 μ—΄κΈ°


기술 μŠ€νƒ

μ—­ν•  기술
ν”„λ ˆμž„μ›Œν¬ React 18 + TypeScript
λΉŒλ“œ Vite
μŠ€νƒ€μΌλ§ Tailwind CSS
μ• λ‹ˆλ©”μ΄μ…˜ Framer Motion
λΌμš°νŒ… React Router
배포 Vercel

κΈ°μ—¬

μƒˆλ‘œμš΄ μ•Œκ³ λ¦¬μ¦˜μ„ κΈ°μ—¬ν•˜κ³  μ‹Άλ‹€λ©΄:

  1. src/algorithms/<name>/ 폴더 생성
  2. solver.ts β€” Step λ°°μ—΄ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ κ΅¬ν˜„
  3. types.ts β€” Step νƒ€μž… μ •μ˜
  4. src/pages/AlgorithmPage/ 에 라우트 μΆ”κ°€
  5. ν™ˆ μΉ΄λ“œ λͺ©λ‘μ— 등둝

About

πŸ§‘β€πŸŽ¨ Interactive algorithm visualizer β€” step-by-step animations for graph, DP, and pathfinding algorithms with code viewer and practice problems

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages