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
Basic Operator15 problems10 problems 5 problems 5 problems
Condition 15 problems15 problems20 problems20 problems
Loop 35 problems20 problems25 problems20 problems
String 35 problems30 problems30 problems30 problems
List / Array 60 problems35 problems35 problems30 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
Implementation25 problems25 problems25 problemsInput / Output 50 problems
Implementation25 problems25 problems25 problemsBit Manipulation70 problems
Implementation25 problems25 problems25 problemsRecursion 10 problems
Implementation25 problems25 problems25 problemsOperators 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-1-cpp 60 problems phase-1-python 100 problems
Introduction 15 problemsIntroduction 5 problems
Conditionals and Loops 5 problemsBasic Data Types 20 problems
Arrays and Strings 10 problemsCollections 30 problems
Functions 5 problemsFunctions 10 problems
Standard Template Libraries 5 problemsStandard Libraries25 problems
Structs and Enums 5 problemsClasses 10 problems
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
Data Structure10 problems20 problems30 problems30 problems
String 40 problems25 problems 5 problems30 problems
Mathematics 25 problems35 problems35 problems40 problems
Greedy 30 problems35 problems25 problems30 problems
Brute Force 15 problems15 problems10 problems15 problems
phase-2-div3-contests phase-2-educational-contests phase-2-gym-contests
100 contests 100 contests 200 contests
Div3 Contests I 25 ContestsEducational Rounds I 25 ContestsGYM Contests 2 20 Contests
Div3 Contests II 25 ContestsEducational Rounds II 25 ContestsGYM Contests 3 I 25 Contests
Div3 Contests III25 ContestsEducational Rounds III25 ContestsGYM Contests 3 II 15 Contests
Div3 Contests IV 25 ContestsEducational Rounds IV 25 ContestsGYM Contests 3 III30 Contests
GYM Contests 3 IV 30 Contests
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-2-1 200 problems phase-2-2 210 problems
Array I 40 problemsArray I 50 problems
Array II 40 problemsArray II 50 problems
Array III 40 problemsArray III 50 problems
Linked List 10 problemsLinked List 30 problems
Stack 50 problemsStack 10 problems
Queue and Dequeue20 problemsQueue and Dequeue20 problems
phase-2-3 170 problems phase-2-4 180 problems
Recursion 30 problemsBinary Tree I 30 problems
Binary Tree 30 problemsBinary Tree II 30 problems
Heap Tree 30 problemsBinary Tree III30 problems
Hash Table I 30 problemsHeap Tree 30 problems
Hash Table II 30 problemsHash Table I 30 problems
Hash Table III20 problemsHash Table II 30 problems
phase-2-5 190 problems phase-2-6 200 problems
Binary Search I 35 problemsBinary Search 30 problems
Binary Search II 35 problemsGreedy I 40 problems
Divide and Conquer20 problemsGreedy II 40 problems
Sorting I 40 problemsGreedy III 40 problems
Sorting II 40 problemsBit Manipulation I 25 problems
Greedy 20 problemsBit Manipulation II25 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-2-linear-data-structures 110 problems phase-2-non-linear-data-structures 90 problems
Arrays 1D 65 problemsBinary Tree 10 problems
Arrays Multi-dimensional20 problemsBinary Search Tree 10 problems
Stacks 25 problemsHeaps / Priority Queues20 problems
Queues 5 problemsHash Tables 50 problems
phase-2-algorithms-searching 120 problems phase-2-algorithms-sorting 140 problems
Linear Search 15 problemsBubble & Selection & Insertion & Merge40 problems
Binary Search I 50 problemsQuick & Count & Heap 20 problems
Binary Search II50 problemsGreedy Algorithms I 40 problems
Ternary Search 5 problemsGreedy 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-2-data-structures 80 problems phase-2-algorithms-basics 90 problems
Arrays & Linked Lists 20 problemsWarm-up & Recursion20 problems
Stacks & Queues 10 problemsSorting 15 problems
Trees & Balanced Trees25 problemsSearch 25 problems
Implementation 30 problemsImplementation 30 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
Divide and Conquer 10 problems10 problems
Graph 10 problems10 problems10 problems10 problems
String 10 problems10 problems10 problems10 problems
Data Structure 20 problems20 problems20 problems20 problems
Mathematics 30 problems30 problems30 problems30 problems
Greedy 20 problems20 problems20 problems20 problems
Dynamic Programming 10 problems10 problems
phase-3-div3-contests phase-3-educational-contests phase-3-gym-contests
100 contests 100 contests 200 contests
Div3 Contests I 25 ContestsEducational Rounds I 25 ContestsGYM Contests 2 20 Contests
Div3 Contests II 25 ContestsEducational Rounds II 25 ContestsGYM Contests 3 I 25 Contests
Div3 Contests III25 ContestsEducational Rounds III25 ContestsGYM Contests 3 II 15 Contests
Div3 Contests IV 25 ContestsEducational Rounds IV 25 ContestsGYM Contests 3 III30 Contests
GYM Contests 3 IV 30 Contests
GYM Contests 3 V 30 Contests


The LeetCode OJ sheets phase-3-1, phase-3-2, phase-3-3, phase-3-4 contain graph algorithms, mathematical algorithms, number theory, string algorithms, and dynamic programming problems, in addition to advanced data structures, 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-3-1 180 problems phase-3-2 210 problems
Backtracking 35 problemsBacktracking 35 problems
Breadth First Search I 25 problemsBreadth First Search20 problems
Breadth First Search II25 problemsDepth First Search 20 problems
Depth First Search I 35 problemsGraph I 30 problems
Depth First Search II 35 problemsGraph II 30 problems
Dynamic Programming 50 problemsDynamic Programming 30 problems
phase-3-3 160 problems phase-3-4 160 problems
Union Find & Binary Indexed Tree & Trie30 problemsSegment Tree & Suffix Array & Geometry30 problems
Math I 30 problemsMath I 30 problems
Math II 30 problemsMath II 30 problems
String 50 problemsString 50 problems
Dynamic Programming 50 problemsDynamic Programming 50 problems


The HackerEarth OJ sheets phase-3-mathematics-strings, phase-3-graph, phase-3-dynamic-programming, phase-3-advanced-data-structures, Each sheet contains string, graph, greedy, mathematics, number theory, 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 ~250 problems.

phase-3-mathematics-strings 230 problems phase-3-graph 300 problems
Basic Number Theory I 30 problemsGraph Representation 35 problems
Basic Number Theory II 30 problemsBreadth First Search 35 problems
Primality Tests 30 problemsDepth First Search I 40 problems
Totient Function 10 problemsDepth First Search II 40 problems
Basics of Combinatorics 30 problemsDepth First Search III 40 problems
Inclusione-Exclusion 20 problemsShortest Path 50 problems
Basics of String Manipulation 40 problemsSpanning Tree & Biconnected Components30 problems
String Searching & Z Algorithm40 problemsMinimum Cost & Maximum Flow & Min-Cut 30 problems
phase-3-dynamic-programming 220 problems phase-3-advanced-data-structures 230 problems
Dynamic Programming I 50 problemsDisjoint Sets 30 problems
Dynamic Programming II 50 problemsTrie 20 problems
Dynamic Programming 2D I 45 problemsSegment Tree I 35 problems
Dynamic Programming 2D II45 problemsSegment Tree II 35 problems
DP and Bit Masking 30 problemsSegment Tree III 30 problems
DP and Bit Masking 30 problemsBinary Indexed Tree I 30 problems
Binary Indexed Tree II 30 problems
Suffix Tree & Suffix Array20 problems


The HackerRank OJ sheets phase-3-mathematics, phase-3-graph-string, phase-3-dynamic-programming, phase-3-advanced-data-structures, These sheets contain string, number theory, algebra, graph, greedy, mathematics, bit manipulation, and dynamic programming problems, in addition to advanced data structures. Also, these sheets were ordered based on the problem difficulty and grouped by the problem type. Finally, each sheet contains ~150 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