This repository contains study materials, source code implementations, weekly programming assignments, and tournament project files for the Algorithm course (Spring Semester 2026) in the Department of Biomedical Convergence Engineering (Data Science Major) at Pusan National University (PNU).
Coding assignments and online judge problems are solved primarily on PNU's official platform: Codeplace.
| Week | Core Topics & Algorithms | Assignments & Implementations | Codeplace Problems |
|---|---|---|---|
| Week 1 | Introduction & Complexity Analysis | • Sum of integers using Gauss's formula (O(1)) in assignment1_202355699.py | • 1160.py • 1509.py |
| Week 2 | Sieve of Eratosthenes & Prime Numbers | • License plate prime number checker in assignment2_202355699.py | • 3164.py • 3199.py • 4010.py |
| Week 3 | Divide & Conquer (Part I) | • Tower of Hanoi path tracker in assignment3_202355699.py • Merge Sort in merge_sort.py |
• 1053.py |
| Week 4 | Divide & Conquer (Part II) & Disjoint Set | • Quick Sort (Hoare / Lomuto partition) & Quick Select • Kruskal's MST (Union-Find) in assignment4_202355699.py |
• 1018.py • 1076.py • 3234.py |
| Week 5 | Greedy Algorithms & Graphs | • Greedy Candy Distribution in assignment5_202355699.py • MST (Prim & Kruskal) • Dijkstra's Shortest Path • Fractional Knapsack • Greedy Job Scheduling |
• 2129.py |
| Week 6 | Greedy Algorithms & Dynamic Programming | • Huffman Coding • 0-1 Knapsack (DP) • Coin Change (DP) |
• 3202.py • 5444.py |
| Week 7 | Dynamic Programming | • Matrix Chain Multiplication (DP) • Edit Distance (DP) |
• 1044.py • 1141.py |
| Week 8 | Midterm Examination Week | No new algorithms | (N/A) |
| Week 9 | Sorting Algorithms & DP Extensions | • Elementary Sorts (Bubble, Insertion, Selection, Shell) • Edit Distance with custom penalty (DP) in assignment9_202355699.py |
• 1066.py • 1133.py • 4006.py |
| Week 10 | Heap Sort & Metric TSP Approximation | • Heap Sort • MST-based 2-Approximation for Metric TSP • Lexicographical Rank computation in assignment10_202355699.py |
• 1007.py |
| Week 11 | Backtracking & Approximation Algorithms | • TSP via Backtracking • Vertex Cover 2-Approximation via Matching • Mutation Gene Detection in assignment11_202355699.py |
• 1072.py • 1122.py |
| Week 12 | Branch & Bound & Advanced DP | • TSP via Branch & Bound • Interleaving String Validation (DP) in assignment12_202355699.py |
• 1109.py • 1110.py |
| Week 13 | Heuristic Optimization & Genetic Algorithms | • Genetic Algorithm for TSP • 3D Block Projection Stacking in assignment13_202355699.py |
• 1067.py |
| Week 14 | Number Theory | • Finding original numbers from proper divisors | • 3064.py |
| Week 15 | Final Examination Week | No new algorithms | (N/A) |
| Week 16 | Term Project: Hex AI Playing Agent | • Strategic board game engine & playing AI agent using minimax search, alpha-beta pruning, and heuristics in week16/ | (Term Project) |
.
├── week1 / # Gauss formula & basic time complexity tasks
├── week2/ # License plate prime check (Sieve of Eratosthenes)
├── week3/ # Hanoi Tower recursion & Merge Sort
├── week4/ # Quick Sort (Lomuto/Hoare), Quick Select & Kruskal's MST
├── week5/ # Greedy Algorithms (Fractional Knapsack, Prim, Dijkstra)
├── week6/ # Huffman coding, Knapsack DP, Coin Change DP
├── week7/ # Matrix Chain Multiplication & Edit Distance
├── week9/ # Basic Sorting Algorithms & Edit Distance with Penalty
├── week10/ # Heap Sort & TSP Approximation (MST-based)
├── week11/ # Backtracking TSP, Vertex Cover Approx, Gene mutation search
├── week12/ # Branch & Bound TSP, Interleaving String check
├── week13/ # Genetic TSP, 3D Block projection stacking
├── week14/ # Proper divisors number theory problem
└── week16/ # Week 16 Term Project: Hex AI Board Game Agent
The term project focuses on constructing an intelligent game agent to compete in Hex, a mathematical connection board game.
The AI agent (hex_ai.py) implements:
- Search Strategy: Depth-limited alpha-beta search with iterative deepening.
- Tactical Patterns: Explicit identification of two-cell bridge structures to maintain connections or disrupt opponent routes.
- Shortest Path Heuristic: Evaluates the board's state by calculating shortest-path connectivity distances for each player's boundaries using custom weights.
- University Platform: Pusan National University Codeplace
- Course: Pusan National University (PNU) Data Science Major / CSE - Algorithm (2026-1)