Coding Interview, From Theory to Mastery

Skills that actually work, Meet them at CodeTree.

Curious how it works?

True Solving Power Requires Specific Skills.

Most Learners Are Here

Need Basic Syntax & Coding Practice?

Conditional Statements

Nested Conditional

Loops

Loop in Undecidable Situation

Nested Loops

Cnt Variable

Two-Dimensional Arrays

2d Array as a Grid

Functions

Call by value / Call by reference

Recursive Functions

Recursive Function without return value

Simulation I

Flood Fill 1d

Simulation II

dx dy technique

Exhaustive Search III

Assume a Value

Case Work

Reasoning

Time and Space Complexity

Time Complexity in For Loop

Conditional Statements

Nested Conditional

Loops

Loop in Undecidable Situation

Nested Loops

Cnt Variable

Two-Dimensional Arrays

2d Array as a Grid

Functions

Call by value / Call by reference

Recursive Functions

Recursive Function without return value

Simulation I

Flood Fill 1d

Simulation II

dx dy technique

Exhaustive Search III

Assume a Value

Case Work

Reasoning

Time and Space Complexity

Time Complexity in For Loop

Hired in 3 Months.

Verified user data

kb logo imagewoori logo imagehana logo imageshinhan logo image

Need Intuition for Real Interviews?

Recursive Functions

Recursive Function with return value

Simulation II

Keep Track with Array

Exhaustive Search I

Set Number for Each Digit

Case Work

Organize Strategy

Time and Space Complexity

Time Complexity in Recursion

Advanced Simulation I

Bomb & Drop

Advanced Simulation II

Moving a single object within a grid

Backtracking I

K Way Exhaustive Search (Conditional)

Backtracking II

Choose M out of N

BFS

Equal Weighted Graph

Dynamic Programming I

One Object Moving in Grid

Dynamic Programming II

Linear Shape

Recursive Functions

Recursive Function with return value

Simulation II

Keep Track with Array

Exhaustive Search I

Set Number for Each Digit

Case Work

Organize Strategy

Time and Space Complexity

Time Complexity in Recursion

Advanced Simulation I

Bomb & Drop

Advanced Simulation II

Moving a single object within a grid

Backtracking I

K Way Exhaustive Search (Conditional)

Backtracking II

Choose M out of N

BFS

Equal Weighted Graph

Dynamic Programming I

One Object Moving in Grid

Dynamic Programming II

Linear Shape

Hired in 3 Months.

Verified user data

samsung logo imagehyundai logo imagenaver logo imagekt logo imagetoss logo image

Have Experience, Aiming for Mastery?

Advanced Simulation I

Exhaustive Search

Advanced Simulation II

Moving multiple objects within a grid

Backtracking

Permutation

Dynamic Programming I

Selecting Items appropriately

Dynamic Programming II

Define state to apply condition

HaspMap

Using strings like array indices

TreeSet

Quickly finding adjacent numbers

Shorten time Technique

+1 -1 Technique

Dijkstra

Shortest distance from all nodes to a specific node

Topological Sort

Graph DP

Advanced DP

DP that scales from small to large intervals

Advanced Simulation I

Exhaustive Search

Advanced Simulation II

Moving multiple objects within a grid

Backtracking

Permutation

Dynamic Programming I

Selecting Items appropriately

Dynamic Programming II

Define state to apply condition

HaspMap

Using strings like array indices

TreeSet

Quickly finding adjacent numbers

Shorten time Technique

+1 -1 Technique

Dijkstra

Shortest distance from all nodes to a specific node

Topological Sort

Graph DP

Advanced DP

DP that scales from small to large intervals

Hired in 3 Months.

Verified user data

google logo imagemicrosoft logo imagemeta logo imageamazon logo image

Every Logic Behind the Test, Yours via the Skill Tree.

samsung logo imagehyundai logo imagenaver logo imagekt logo imagetoss logo image

1. Foundations of Coding

1. Variables & Output

Learn how to store information in variables and display it on the screen.

2. Input Basics

Learn how to get information from keyboard and use it.

3. Basic Operators

Learn how to use essential operators for basic calculations.

4. Conditional Statements

Understand how to use if-statements and logical operators to make decisions.

5. Loops

Learn about different types of loops and how to use them to repeat tasks.

6. Nested Loops

Explore how to use loops within other loops for more complex repetitions.

7. Arrays

Learn about arrays and how to use them with loops to manage lists of data.

8. Two-Dimensional Arrays

Discover how to work with grids of data using two-dimensional arrays.

9. Strings

Learn the basics of strings and various operations you can perform on text.

1. Variables & Output

Learn how to store information in variables and display it on the screen.

2. Input Basics

Learn how to get information from keyboard and use it.

3. Basic Operators

Learn how to use essential operators for basic calculations.

4. Conditional Statements

Understand how to use if-statements and logical operators to make decisions.

5. Loops

Learn about different types of loops and how to use them to repeat tasks.

6. Nested Loops

Explore how to use loops within other loops for more complex repetitions.

7. Arrays

Learn about arrays and how to use them with loops to manage lists of data.

8. Two-Dimensional Arrays

Discover how to work with grids of data using two-dimensional arrays.

9. Strings

Learn the basics of strings and various operations you can perform on text.

2. Algorithmic Foundations

1. Functions

Learn how to define and use functions to organize your code and make it reusable.

2. Recursive Functions

Understand the principles of recursive functions and how to apply them in problem-solving.

3. Sorting

Learn different methods to sort arrays and objects, and understand when to use them.

4. Simulation I

Practice various types of simulations including date/time calculations, base conversions, and area calculations using arrays.

5. Simulation II

Learn how to manage complex array structures and implement efficient movements on two-dimensional grids.

6. Exhaustive Search I

Learn how to perform exhaustive searches using digits, positions, and intervals.

7. Exhaustive Search II

Explore exhaustive search techniques for a wider range of object-based problems.

8. Exhaustive Search III

Learn problem-solving techniques to transform complex problems into simpler ones using exhaustive search.

9. Case Work

Practice breaking down problems into different cases and solving each one systematically.

10. Ad-Hoc

Learn how to solve unique problems that require creative and specific solutions.

1. Functions

Learn how to define and use functions to organize your code and make it reusable.

2. Recursive Functions

Understand the principles of recursive functions and how to apply them in problem-solving.

3. Sorting

Learn different methods to sort arrays and objects, and understand when to use them.

4. Simulation I

Practice various types of simulations including date/time calculations, base conversions, and area calculations using arrays.

5. Simulation II

Learn how to manage complex array structures and implement efficient movements on two-dimensional grids.

6. Exhaustive Search I

Learn how to perform exhaustive searches using digits, positions, and intervals.

7. Exhaustive Search II

Explore exhaustive search techniques for a wider range of object-based problems.

8. Exhaustive Search III

Learn problem-solving techniques to transform complex problems into simpler ones using exhaustive search.

9. Case Work

Practice breaking down problems into different cases and solving each one systematically.

10. Ad-Hoc

Learn how to solve unique problems that require creative and specific solutions.

3. Data Structures Fundamentals

1. Time and Space Complexity

Learn about time and space complexity, and how to calculate them in your code.

2. Linear Data Structures

Explore arrays, linked lists, and other linear data structures.

3. Sorting Algorithms

Learn various sorting algorithms like bubble sort and merge sort, their implementations, and characteristics.

4. Binary Search

Understand the concept of binary search and how to use it to reduce time complexity.

5. Stack, Queue, and Deque

Learn about stacks, queues, and deques - their definitions, implementations, and applications.

6. Tree Structures

Explore various tree data structures and their applications.

7. Hashing Techniques

Learn about string hashing and its applications in problem-solving.

8. Dynamic Programming Basics

Understand the concept of dynamic programming and solve various types of problems using this technique.

9. Graph Basics

Learn different ways to represent graphs and basic graph traversal algorithms.

10. Advanced Graph Algorithms

Explore crucial graph algorithms, such as those for finding shortest paths and minimum spanning trees in graphs.

1. Time and Space Complexity

Learn about time and space complexity, and how to calculate them in your code.

2. Linear Data Structures

Explore arrays, linked lists, and other linear data structures.

3. Sorting Algorithms

Learn various sorting algorithms like bubble sort and merge sort, their implementations, and characteristics.

4. Binary Search

Understand the concept of binary search and how to use it to reduce time complexity.

5. Stack, Queue, and Deque

Learn about stacks, queues, and deques - their definitions, implementations, and applications.

6. Tree Structures

Explore various tree data structures and their applications.

7. Hashing Techniques

Learn about string hashing and its applications in problem-solving.

8. Dynamic Programming Basics

Understand the concept of dynamic programming and solve various types of problems using this technique.

9. Graph Basics

Learn different ways to represent graphs and basic graph traversal algorithms.

10. Advanced Graph Algorithms

Explore crucial graph algorithms, such as those for finding shortest paths and minimum spanning trees in graphs.

4. Practical Algorithm Design

1. Advanced Simulation

Learn how to perform exhaustive searches and implement complex operations like rotation and movement on two-dimensional grids.

2. Backtracking

Explore how to use recursive functions to enumerate all the combinations that satisfy specific conditions.

3. Depth-First Search

Learn how to apply DFS to graphs and solve a variety of problems using this technique.

4. Breadth-First Search

Discover how to use BFS on graphs and tackle different types of problems with this approach.

5. Dynamic Programming I

Explore a wide range of basic Dynamic Programming problems and their solutions.

6. Dynamic Programming II

Learn how to define appropriate states for more challenging Dynamic Programming problems.

1. Advanced Simulation

Learn how to perform exhaustive searches and implement complex operations like rotation and movement on two-dimensional grids.

2. Backtracking

Explore how to use recursive functions to enumerate all the combinations that satisfy specific conditions.

3. Depth-First Search

Learn how to apply DFS to graphs and solve a variety of problems using this technique.

4. Breadth-First Search

Discover how to use BFS on graphs and tackle different types of problems with this approach.

5. Dynamic Programming I

Explore a wide range of basic Dynamic Programming problems and their solutions.

6. Dynamic Programming II

Learn how to define appropriate states for more challenging Dynamic Programming problems.

5. Advanced Algorithms I

1. Advanced Data Structures

Learn about maps, sets, priority queues, and linked lists. Understand how and when to use these structures in problem-solving.

2. Basic Optimization Techniques

Explore crucial techniques like prefix sum and grid compression to optimize time complexity in your algorithms.

3. Parametric Search

Discover parametric search, an advanced application of binary search, and its problem-solving applications.

4. Greedy Algorithms

Learn basic greedy strategies and how to apply them to solve various algorithmic problems.

5. Shortest Path Algorithms

Master essential algorithms for calculating shortest paths in graphs and solve problems using these techniques.

1. Advanced Data Structures

Learn about maps, sets, priority queues, and linked lists. Understand how and when to use these structures in problem-solving.

2. Basic Optimization Techniques

Explore crucial techniques like prefix sum and grid compression to optimize time complexity in your algorithms.

3. Parametric Search

Discover parametric search, an advanced application of binary search, and its problem-solving applications.

4. Greedy Algorithms

Learn basic greedy strategies and how to apply them to solve various algorithmic problems.

5. Shortest Path Algorithms

Master essential algorithms for calculating shortest paths in graphs and solve problems using these techniques.

6. Advanced Algorithms II

1. Advanced Tree Algorithms

Learn about binary tree traversals, tree-based dynamic programming, and Lowest Common Ancestor algorithms.

2. Minimum Spanning Trees

Understand the concept of disjoint sets and how to use them in algorithms for finding Minimum Spanning Trees.

3. Topological Sort

Explore topological sorting in graphs and its applications in dynamic programming problems.

4. Fundamental String Algorithms

Learn essential string algorithms and data structures like Knuth-Morris-Pratt and Trie.

5. Advanced Dynamic Programming

Tackle challenging dynamic programming problems, including Bitonic DP and Bit-masking DP techniques.

1. Advanced Tree Algorithms

Learn about binary tree traversals, tree-based dynamic programming, and Lowest Common Ancestor algorithms.

2. Minimum Spanning Trees

Understand the concept of disjoint sets and how to use them in algorithms for finding Minimum Spanning Trees.

3. Topological Sort

Explore topological sorting in graphs and its applications in dynamic programming problems.

4. Fundamental String Algorithms

Learn essential string algorithms and data structures like Knuth-Morris-Pratt and Trie.

5. Advanced Dynamic Programming

Tackle challenging dynamic programming problems, including Bitonic DP and Bit-masking DP techniques.

1. Advanced Tree Algorithms

Learn about binary tree traversals, tree-based dynamic programming, and Lowest Common Ancestor algorithms.

2. Minimum Spanning Trees

Understand the concept of disjoint sets and how to use them in algorithms for finding Minimum Spanning Trees.

3. Topological Sort

Explore topological sorting in graphs and its applications in dynamic programming problems.

4. Fundamental String Algorithms

Learn essential string algorithms and data structures like Knuth-Morris-Pratt and Trie.

5. Advanced Dynamic Programming

Tackle challenging dynamic programming problems, including Bitonic DP and Bit-masking DP techniques.

6 Codetrails: Master Problem-Solving Skills Step-by-Step

Access a meticulously organized system covering the principles behind every coding problem.

Plan 1

Optimized for Skill Mastery

We have prepared everything you need to learn at your own pace without interruption.
All you have to do is run!

Designed for Consistency

Filling Your Contribution Graph = Improving Your Skills.
It happens naturally at Codetree.

KakaoTalk Notification

We will send you study reminders via KakaoTalk.

Build a consistent learning routine.

Plan 4

From the Illusion of Knowing, To the Confidence of Solving.

"You can feel the obsessive amount of thought put into this system.

By breaking down skills into 'bite-sized' chunks, I could study precisely without the burnout that comes from just mindlessly grinding problems. Honestly grateful that a service like this exists."

- ck****2, Day 41 of Learning

Curious how it works?

Branch and Bound Co., Ltd. | © 2026. Branch and Bound Inc.

All educational materials on the Codetree site are protected by copyright law. Unauthorized reproduction/copying/distribution without the consent of the author is prohibited. Copyright © Branch & Bound | contact@codetree.ai

CEO : Seung-Yong Lee | Address: 1000 N. West Street, Suite 1200, Wilmington, Delaware, 19801 | Landline : +1 302 295 4813 | Contact : contact@codetree.ai