Skip to content

amranwr/Problem-Solving-Training

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Problem Solving Training

Problem Solving Training for computer science students.





Table of Contents

This level simply consists of 10 sheets, 4 sheets of them on Codeforces Online Judge, plus 4 sheets on HackerEarth Online Judge, and the last 2 sheets on HackerRank Online Judge.

Prerequisite Knowledge

The prerequisites for level 1 of this training are the basic knowledge for any programming language like (Variable Types - Basic Operators - Conditions - Loops - Functions - Lists/Arrays - Strings).
Related Training: Programming Languages Training Repository


The Codeforces OJ sheets phase-1-1, phase-1-2, phase-1-3, phase-1-4 contain A-Div2 problems, and each sheet of them divided into 5 classes of problems (Basic Operators - Conditions - Loops - Lists/Arrays - Strings). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~120 problems.

phase-1-1 phase-1-2 phase-1-3 phase-1-4
160 problems 115 problems 115 problems 105 problems
1 Basic Operator 15 problems 10 problems 5 problems 5 problems
2 Condition 15 problems 15 problems 20 problems 20 problems
3 Loop 35 problems 20 problems 25 problems 20 problems
4 String 35 problems 30 problems 30 problems 30 problems
5 List / Array 60 problems 35 problems 35 problems 30 problems


The HackerEarth OJ sheets phase-1-1, phase-1-2, phase-1-3 contain implementation problems and basic programming problems. These sheets were ordered based on difficulty. Each sheet contains ~100 problems. For the last sheet phase-1-basic-programming that focus on the basic programming problems, It's divided into 4 classes of problems (Input/Output - Bit Manipulation - Recursion - Operators). Also, this sheet was ordered based on the problem difficulty and grouped by the problem type. Finally, this sheet contains ~130 problems.

phase-1-1 phase-1-2 phase-1-3 phase-1-basic-programming
100 problems 100 problems 100 problems 130 problems
1 Implementation 25 problems 25 problems 25 problems Input / Output 50 problems
2 Implementation 25 problems 25 problems 25 problems Bit Manipulation 70 problems
3 Implementation 25 problems 25 problems 25 problems Recursion 10 problems
4 Implementation 25 problems 25 problems 25 problems Operators 5 problems


The HackerRank OJ sheets phase-1-cpp This sheet focus on c/c++ basic problems, It's divided into 8 classes of problems (Introduction - Conditionals and Loops - Arrays and Strings - Functions - Standard Template Libraries - Structs and Enums - Classes and Inheritance - Misc). It was ordered based on the problem difficulty and grouped by the problem type. Finally, this sheet contains ~70 problems. phase-1-python This sheet focus on python basic problems, It's divided into 6 classes of problems (Introduction - Basic Data Types - Collections - Functions - Standard Libraries - Classes). It was ordered based on the problem difficulty and grouped by the problem type. Finally, this sheet contains ~100 problems.

Phase Name # Problems Phase Name # Problems
phase-1-cpp 60 problems phase-1-python 100 problems
1 Introduction 15 problems Introduction 5 problems
2 Conditionals and Loops 5 problems Basic Data Types 20 problems
3 Arrays and Strings 10 problems Collections 30 problems
4 Functions 5 problems Functions 10 problems
5 Standard Template Libraries 5 problems Standard Libraries 25 problems
6 Structs and Enums 5 problems Classes 10 problems
7 Classes and Inheritance 15 problems

Notes

  • If the student has a target to compete in the programming competitions like ACM-ICPC or Google CodeJam or Google KickStart or Facebook Hackercup or TopCoder Open TCO, so it's recommended to start with Codeforces sheets, TopCoder sheets and AtCoder sheets, but if (s)he has a target to practice on a specific topic or preparing for an interview, so it's recommended to start with HackerEarth sheets, HackerRank sheets, AlgoExpert sheets and LeetCode sheets.
  • On each one of these sheets has an excel sheet to record your effort and enhance your progress, The time estimate for level problems is between 30 min to 45 min for each problem, including reading time, thinking time, coding time, debugging time, and learning time.

This level simply consists of 19 sheets, 7 sheets of them on Codeforces Online Judge, 6 sheets of them on LeetCode Online Judge, plus 4 sheets on HackerEarth Online Judge, and the last 2 sheets on HackerRank Online Judge.

Prerequisite Knowledge

The prerequisites for level 2 of this training are the basic knowledge for Data Structures and Algorithms Analysis like (Linear Data Structures - Non-Linear Data Structures - Searching Algorithms - Sorting Algorithms - Divide and Conquer).
Related Training: Data Structures and Algorithms Analysis Training Repository


The Codeforces OJ sheets phase-2-1, phase-2-2, phase-2-3, phase-2-4 contain B-Div2 problems, and each sheet of them divided into 5 classes of problems (Data Structure - Mathematics - String - Greedy - Brute Force). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~120 problems. For the last 2 sheets phase-2-div3-contests that focus on div3-contests (easy contests) and contains ~100 contests, and phase-2-educational-contests, that focus on educational-contests (medium contests) and contains ~100 contests. Finally phase-2-gym-contests that focus on gym-contests that contains ~200 contests.

phase-2-1 phase-2-2 phase-2-3 phase-2-4
120 problems 130 problems 105 problems 145 problems
1 Data Structure 10 problems 20 problems 30 problems 30 problems
2 String 40 problems 25 problems 5 problems 30 problems
3 Mathematics 25 problems 35 problems 35 problems 40 problems
4 Greedy 30 problems 35 problems 25 problems 30 problems
5 Brute Force 15 problems 15 problems 10 problems 15 problems
phase-2-div3-contests phase-2-educational-contests phase-2-gym-contests
100 contests 100 contests 200 contests
1 Div3 Contests I 25 contests Educational Rounds I 25 contests GYM Contests 2 20 contests
2 Div3 Contests II 25 contests Educational Rounds II 25 contests GYM Contests 3 I 25 contests
3 Div3 Contests III 25 contests Educational Rounds III 25 contests GYM Contests 3 II 15 contests
4 Div3 Contests IV 25 contests Educational Rounds IV 25 contests GYM Contests 3 III 30 contests
5 GYM Contests 3 IV 30 contests
6 GYM Contests 3 V 30 contests


The LeetCode OJ sheets phase-2-1, phase-2-2, phase-2-3, phase-2-4, phase-2-5, phase-2-6 contain linear and non-linear data structures problems, searching and sorting algorithms, and each sheet of them divided into 6 classes of problems (Array - LinkedList - Stack - Queue - Binary Tree - Heap Tree - HashTable) in addition to (Binary Search - Sorting - Divide and Conquer - Greedy - Bit Manipulation). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~200 problems.

Phase Name # Problems Phase Name # Problems
phase-2-1 200 problems phase-2-2 210 problems
1 Array I 40 problems Array I 50 problems
2 Array II 40 problems Array II 50 problems
3 Array III 40 problems Array III 50 problems
4 Linked List 10 problems Linked List 30 problems
5 Stack 50 problems Stack 10 problems
6 Queue and Dequeue 20 problems Queue and Dequeue 20 problems
phase-2-3 170 problems phase-2-4 180 problems
1 Recursion 30 problems Binary Tree I 30 problems
2 Binary Tree 30 problems Binary Tree II 30 problems
3 Heap Tree 30 problems Binary Tree III 30 problems
4 Hash Table I 30 problems Heap Tree 30 problems
5 Hash Table II 30 problems Hash Table I 30 problems
6 Hash Table III 20 problems Hash Table II 30 problems
phase-2-5 190 problems phase-2-6 200 problems
1 Binary Search I 35 problems Binary Search 30 problems
2 Binary Search II 35 problems Greedy I 40 problems
3 Divide and Conquer 20 problems Greedy II 40 problems
4 Sorting I 40 problems Greedy III 40 problems
5 Sorting II 40 problems Bit Manipulation I 25 problems
6 Greedy 20 problems Bit Manipulation II 25 problems


The HackerEarth OJ sheets phase-2-linear-data-structures, phase-2-non-linear-data-structures, phase-2-algorithms-searching, phase-2-algorithms-sorting, Each sheet contains linear and non-linear data structures problems, in addition to searching and sorting algorithms. These sheets were ordered based on the problem difficulty and each sheet contains ~100 problems.

Phase Name # Problems Phase Name # Problems
phase-2-linear-data-structures 110 problems phase-2-non-linear-data-structures 90 problems
1 Arrays 1D 65 problems Binary Tree 10 problems
2 Arrays Multi-dimensional 20 problems Binary Search Tree 10 problems
3 Stacks 25 problems Heaps / Priority Queues 20 problems
4 Queues 5 problems Hash Tables 50 problems
phase-2-algorithms-searching 120 problems phase-2-algorithms-sorting 140 problems
1 Linear Search 15 problems Bubble & Selection & Insertion & Merge 40 problems
2 Binary Search I 50 problems Quick & Count & Heap 20 problems
3 Binary Search II 50 problems Greedy Algorithms I 40 problems
4 Ternary Search 5 problems Greedy Algorithms II 40 problems


The HackerRank OJ sheets phase-2-data-structures, phase-2-algorithms-basics, These sheets contain linear and non-linear data structures problems, and basic algorithms problems. Also, these sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~80 problems.

Phase Name # Problems Phase Name # Problems
phase-2-data-structures 50 problems phase-2-algorithms-basics 125 problems
1 Arrays & Linked Lists 20 problems Warm-up & Recursion 20 problems
2 Stacks & Queues 10 problems Sorting 15 problems
3 Trees & Balanced Trees 20 problems Search 25 problems
4 Implementation 65 problems

Notes

  • If the student has a target to compete in the programming competitions like ACM-ICPC or Google CodeJam or Google KickStart or Facebook Hackercup or TopCoder Open TCO, so it's recommended to start with Codeforces sheets, TopCoder sheets and AtCoder sheets, but if (s)he has a target to practice on a specific topic or preparing for an interview, so it's recommended to start with HackerEarth sheets, HackerRank sheets, AlgoExpert sheets and LeetCode sheets.
  • On each one of these sheets has an excel sheet to record your effort and enhance your progress, The time estimate for level problems is between 30 min to 45 min for each problem, including reading time, thinking time, coding time, debugging time, and learning time.

This level simply consists of 19 sheets, 7 sheets of them on Codeforces Online Judge, 4 sheets of them on LeetCode Online Judge, plus 4 sheets on HackerEarth Online Judge, and the last 4 sheets on HackerRank Online Judge.

Prerequisite Knowledge

The prerequisites for level 3 of this training are the advanced knowledge for Data Structures and Algorithms Analysis like (Disjoint Sets - Trie - Segment Tree - Binary Indexed Tree - Divide and Conquer - Graph Algorithms - Greedy Algorithms - Dynamic Programming - Mathematical Algorithms).
Related Training: Advanced Data Structures and Algorithms Analysis Training Repository


The Codeforces OJ sheets phase-3-1, phase-3-2, phase-3-3, phase-3-4 contain C-Div2/A-Div1 problems, and each sheet of them divided into 7 classes of problems (Divide and Conquer - Graph - Data Structure - Mathematics - String - Greedy - Dynamic Programming). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~120 problems. For the last 3 sheets phase-3-div3-contests that focus on div3-contests (easy contests) and contains ~100 contests, and phase-3-educational-contests, that focus on educational-contests (medium contests) and contains ~100 contests. Finally phase-3-gym-contests that focus on gym-contests that contains ~200 contests.

phase-3-1 phase-3-2 phase-3-3 phase-3-4
100 problems 100 problems 100 problems 100 problems
1 Divide and Conquer 10 problems 10 problems
2 Graph 10 problems 10 problems 10 problems 10 problems
3 String 10 problems 10 problems 10 problems 10 problems
4 Data Structure 20 problems 20 problems 20 problems 20 problems
5 Mathematics 30 problems 30 problems 30 problems 30 problems
6 Greedy 20 problems 20 problems 20 problems 20 problems
7 Dynamic Programming 10 problems 10 problems
phase-3-div3-contests phase-3-educational-contests phase-3-gym-contests
100 contests 100 contests 200 contests
1 Div3 Contests I 25 contests Educational Rounds I 25 contests GYM Contests 2 20 contests
2 Div3 Contests II 25 contests Educational Rounds II 25 contests GYM Contests 3 I 25 contests
3 Div3 Contests III 25 contests Educational Rounds III 25 contests GYM Contests 3 II 15 contests
4 Div3 Contests IV 25 contests Educational Rounds IV 25 contests GYM Contests 3 III 30 contests
5 GYM Contests 3 IV 30 contests
6 GYM Contests 3 V 30 contests


The LeetCode OJ sheets phase-3-1, phase-3-2, phase-3-3, phase-3-4 contain search algorithms, sorting algorithms, divide and conquer algorithms, greedy algorithms, graph algorithms, and dynamic programming problems, and each sheet of them divided into 6 classes of problems (Binary Search - Divide and Conquer - Sort - Greedy - Graph - Breadth First Search - Depth First Search - Backtracking - Dynamic Programming). These sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~200 problems.

Phase Name # Problems Phase Name # Problems
phase-3-1 180 problems phase-3-2 210 problems
1 Backtracking 35 problems Backtracking 35 problems
2 Breadth First Search I 25 problems Breadth First Search 20 problems
3 Breadth First Search II 25 problems Depth First Search 20 problems
4 Depth First Search I 35 problems Graph I 30 problems
5 Depth First Search II 35 problems Graph II 30 problems
6 Dynamic Programming 50 problems Dynamic Programming 30 problems
phase-3-3 160 problems phase-3-4 160 problems
1 Union Find & Binary Indexed Tree & Trie 30 problems Segment Tree & Suffix Array & Geometry 30 problems
2 Math I 30 problems Math I 30 problems
3 Math II 30 problems Math II 30 problems
4 String 50 problems String 50 problems
5 Dynamic Programming 50 problems Dynamic Programming 50 problems


The HackerEarth OJ sheets phase-3-mathematics, phase-3-graph, phase-3-dynamic-programming, phase-3-advanced-data-structures, Each sheet contains graph, greedy, mathematics, and dynamic programming problems, in addition to advanced data structures. These sheets were ordered based on the problem difficulty and grouped by the problem type, each sheet contains ~110 problems.

Phase Name # Problems Phase Name # Problems
phase-3-mathematics 150 problems phase-3-graph 300 problems
1 Basic Number Theory I 30 problems Graph Representation 35 problems
2 Basic Number Theory II 30 problems Breadth First Search 35 problems
3 Primality Tests 30 problems Depth First Search I 40 problems
4 Totient Function 10 problems Depth First Search II 40 problems
5 Basics of Combinatorics 30 problems Depth First Search III 40 problems
6 Inclusione-Exclusion 20 problems Shortest Path 50 problems
7 Minimum Spanning Tree & Biconnected Components 30 problems
8 Minimum Cost & Maximum Flow & Min-Cut 30 problems
phase-3-dynamic-programming 220 problems phase-3-advanced-data-structures 230 problems
1 Dynamic Programming I 50 problems Disjoint Sets 30 problems
2 Dynamic Programming II 50 problems Trie 20 problems
3 Dynamic Programming 2D I 45 problems Segment Tree I 35 problems
4 Dynamic Programming 2D II 45 problems Segment Tree II 35 problems
5 DP and Bit Masking 30 problems Segment Tree III 30 problems
6 DP and Bit Masking 30 problems Binary Indexed Tree I 30 problems
7 Binary Indexed Tree II 30 problems
8 Suffix Tree & Suffix Array 20 problems


The HackerRank OJ sheets phase-3-mathematics, phase-3-graph-string, phase-3-dynamic-programming, phase-3-advanced-data-structures, These sheets contain graph, greedy, mathematics, and dynamic programming problems, in addition to data structures. Also, these sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~70 problems.

Phase Name # Problems Phase Name # Problems
phase-3-mathematics 250 problems phase-3-graph-string 130 problems
1 Fundamentals 25 problems Graph Theory I 30 problems
2 Number Theory I 35 problems Graph Theory II 30 problems
3 Number Theory II 35 problems Greedy 25 problems
4 Combinatorics 50 problems Strings 45 problems
5 Algebra 55 problems
6 Geometry 30 problems
7 Probability 25 problems
phase-3-dynamic-programming 140 problems phase-3-advanced-data-structures 60 problems
1 Bit Manipulation I 15 problems Heap & Disjoint Set & Trie 10 problems
2 Bit Manipulation II 15 problems Advanced I 25 problems
3 Dynamic Programming I 40 problems Advanced II 25 problems
4 Dynamic Programming II 30 problems
5 Dynamic Programming III 30 problems
6 Constructive Algorithms 10 problems

Notes

  • If the student has a target to compete in the programming competitions like ACM-ICPC or Google CodeJam or Google KickStart or Facebook Hackercup or TopCoder Open TCO, so it's recommended to start with Codeforces sheets, TopCoder sheets and AtCoder sheets, but if (s)he has a target to practice on a specific topic or preparing for an interview, so it's recommended to start with HackerEarth sheets, HackerRank sheets, AlgoExpert sheets and LeetCode sheets.
  • On each one of these sheets has an excel sheet to record your effort and enhance your progress, The time estimate for level problems is between 30 min to 45 min for each problem, including reading time, thinking time, coding time, debugging time, and learning time.

About

Problem Solving Training for computer science students.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published