EPAM Previous Year Coding Questions 2025
EPAM Systems is a global software engineering and IT consulting company known for its strong technical culture and digital transformation expertise. With clients across industries including finance, healthcare, and retail, EPAM is a popular destination for engineering and software roles.
Founded in 1993, EPAM has grown into a globally distributed team, with major hiring in India, Eastern Europe, and the US. It’s known for a rigorous selection process and exciting engineering roles, making it a great career choice for coders and problem-solvers.
EPAM primarily hires for roles like Junior Software Engineer, Junior Software Test Automation Engineer, Full Stack Developer, and various specialized technical positions. The company is known for its rigorous interview process that thoroughly evaluates both technical skills and problem-solving abilities.
EPAM Hiring Process
The EPAM hiring process typically consists of the following rounds:
1.Online Coding Assessment
- Platform: HackerRank or CoCubes
- Number of Questions: 2–3 coding problems
- Duration: 90–120 minutes
- Topics: Data Structures, Algorithms, Strings, Arrays, Sorting, DP
2. Technical Interview Round 1
- Topics: DSA, OOPs, Projects, DBMS, OS, Problem-solving
- Expect coding questions similar to the online round
3. Technical Interview Round 2 (Sometimes merged with HR)
- System design basics, debugging, coding, project discussion
4. HR + Managerial Round
- Resume-based questions, career goals, communication check, salary discussion
High Priority Topics
1. Arrays and Strings (High Priority)
- Key Concepts: Two pointers, sliding window, prefix sums
- Common Problems: Two sum, maximum subarray, string matching
2. Dynamic Programming (Very High Priority)
- Key Concepts: Memoization, tabulation, state transitions
- Common Problems: Knapsack, LCS, palindromes, coin change
3. Trees and Graphs (High Priority)
- Key Concepts: Traversals, shortest paths, tree properties
- Common Problems: Binary tree operations, graph connectivity
4. Mathematical and Logical Problems (Medium Priority)
- Key Concepts: Number theory, combinatorics, bit manipulation
- Common Problems: Prime numbers, GCD/LCM, permutations
EPAM-Specific Preparation Tips
Java Mastery Requirements
EPAM often restricts language choice to Java
Collections Framework:
- ArrayList vs LinkedList
- HashMap vs TreeMap
- HashSet vs TreeSet
- PriorityQueue usage
OOP Principles:
- Inheritance concepts
- Polymorphism usage
- Encapsulation benefits
- Interface vs Abstract classes
Coding Standards:
- Meaningful variable names
- Proper commenting
- Consistent formatting
- Error handling
Problem-Solving Approach
- Read Carefully: Understand the problem completely before coding
- Think Out Loud: Practice explaining your approach
- Start Simple: Begin with brute force, then optimize
- Test Thoroughly: Check edge cases and normal cases
- Optimize Gradually: Improve time/space complexity step by step
Advanced Preparation Tips
Mock Interview Practice:
- Schedule practice sessions with peers
- Use platforms like Pramp, InterviewBit and Lets Code
- Record yourself solving problems
- Get feedback on communication skills
Time Management:
- Practice with strict time limits
- Learn to identify problem patterns quickly
- Develop a systematic approach to debugging
- Master keyboard shortcuts for faster coding
Stress Management:
- Practice deep breathing techniques
- Develop confidence through consistent practice
- Learn from mistakes rather than getting discouraged
- Maintain a positive mindset throughout preparation
Resources to Prepare for EPAM
1. Resume & Document Tools
2. Roadmaps & Guides
- DSA Roadmap & interview questions
- Striver’s A2Z DSA Sheet
- Complete Placement Roadmap
- Java Developer Roadmap
3. Interview Preparation
4- CS Fundamentals:
- Operating Systems, DBMS, OOP, CN – Use Gate Smashers, Neso Academy
5. Additional Resources
EPAM Previous Year Coding Questions
Easy Level Questions
1. Password Validator
Determine if a given string is a valid password based on its length.
Input: A string
Output: "Valid" if length is between 20 and 40 characters, else "Invalid"
2. Minimum Occurrence
Find the character in a string that appears the fewest times. The string contains only ASCII characters (a-z, A-Z, 0-9), and case matters. In case of a tie, return the character that appears first.
Input: String (e.g., "cdadcda")
Output: Character (e.g., "c")
3. Second Maximum Element
Identify the second largest element in an array without sorting.
Input: Array of integers
Output: Second largest integer
4. Find Missing Number
Find the missing number in an array of consecutive integers.
Input: Array of n-1 integers from 1 to n
Output: Missing integer
5. Anagram Check
Check if two strings are anagrams of each other.
Input: Two strings (e.g., "listen", "silent")
Output: Boolean (e.g., True)
6. Reverse Words in String
Reverse the order of words in a given string.
Input: String (e.g., "Hello World")
Output: String (e.g., "World Hello")
7. Prime Number Check
Determine if a number is prime or generate prime numbers up to n.
Input: Integer n
Output: Boolean or list of primes up to n
8. Factorial Calculation
Compute the factorial of a number using an iterative or recursive approach.
Input: Integer n
Output: n! (factorial of n)
9. Fibonacci Series
Generate or find the nth Fibonacci number.
Input: Integer n
Output: nth Fibonacci number
10. GCD/LCM Calculation
Calculate the Greatest Common Divisor (GCD) or Least Common Multiple (LCM) of two numbers.
Input: Two integers
Output: GCD or LCM
Medium Level Questions
11. Password ASCII Decoding
Decode a password from a string of ASCII values given in reverse order. The password contains only alphabets (A-Z: 65-90, a-z: 97-122) and spaces (32). Reverse the input string, then convert valid two- or three-digit values to their ASCII characters.
Input: String of digits (e.g., "796115110113721110141108")
Output: Decoded password (e.g., "PrepInsta")
12. Football Team Goals Comparison
Given two lists of goals scored by football teams A and B, for each match of team B, count the number of matches where team A scored less than or equal to team B's goals.
Input: teamA = [1, 2, 3], teamB = [2, 4]
Output: Array (e.g., [2, 3])
13. Guess the Word
Given a list of words, find the word with the maximum odd length. If no word has an odd length, return "Better luck next time".
Input: List of words (e.g., ["Hello", "Good", "morning", "Welcome", "you"])
Output: Word with max odd length (e.g., "morning") or "Better luck next time"
14. Array Sorting with Multiples of 5
Sort only the multiples of 5 in an array in descending order, keeping other elements in their original positions.
Input: Array (e.g., [3, 5, 2, 10, 7, 15])
Output: Array (e.g., [3, 15, 2, 10, 7, 5])
15. Balanced Parentheses
Check if an expression has balanced parentheses.
Input: String (e.g., "{[()]}")
Output: "Balanced" or "Not Balanced"
16. Spiral Traversal of a Matrix
Print elements of a 2D matrix in spiral order, starting from the top-left corner.
Input: Matrix (e.g., [[1, 2, 3], [4, 5, 6], [7, 8, 9]])
Output: Array (e.g., [1, 2, 3, 6, 9, 8, 7, 4, 5])
17. Find Non-Unique Integers
Find all repeated integers in an array with O(n) time and space complexity.
Input: Array (e.g., [1, 2, 2, 3, 4, 4, 5])
Output: Array of duplicates (e.g., [2, 4])
18. Repeated Characters in a String
Identify repeated characters in a string and return the string with duplicates removed.
Input: String (e.g., "hello")
Output: String (e.g., "helo")
19. Binary to Decimal Conversion
Convert a series of binary numbers to decimal and return the maximum decimal value.
Input: Array of binary strings
Output: Maximum decimal value
20. Rotate Array
Rotate an array to the right by k steps.
Input: Array and integer k (e.g., [1, 2, 3, 4, 5], k=2)
Output: Rotated array (e.g., [4, 5, 1, 2, 3])
21. Two Sum Problem
Find two numbers in an array that sum to a target value.
Input: Array and target sum
Output: Indices of the two numbers
22. String Replacement
Replace all occurrences of a substring with another substring.
Input: String, target substring, replacement (e.g., "hello", "ll", "pp")
Output: Modified string (e.g., "heppo")
23. Wildcard Pattern Matching
Check if a string matches a pattern containing wildcards (* for any sequence, ? for a single character).
Input: Pattern and string
Output: Boolean (True if matches, else False)
24. Merge Sorted Arrays
Merge two sorted arrays into a single sorted array.
Input: Two sorted arrays
Output: Merged sorted array
25. Power of Number
Calculate a^b efficiently.
Input: Base a, exponent b
Output: a^b
26. Count Numbers Within Limit
Count valid numbers that can be formed from given digits within a specified limit.
Input: Digits and limit
Output: Count of valid numbers
27. Binary Tree Traversal
Implement inorder, preorder, and postorder traversals for a binary tree.
Input: Binary tree
Output: Traversal sequences
28. Depth-First Search (DFS)
Implement DFS on a graph or tree.
Input: Graph as adjacency list
Output: DFS traversal order
29. Breadth-First Search (BFS)
Implement BFS on a graph or tree.
Input: Graph as adjacency list
Output: BFS traversal order
30. Level Order Traversal
Print nodes of a binary tree level by level.
Input: Binary tree
Output: Level-wise node values
31. Binary Search Tree Operations
Perform insert, delete, and search operations on a Binary Search Tree (BST).
Input: BST and operations
Output: Modified BST or search result
32. Tree Height/Depth
Calculate the height or depth of a binary tree.
Input: Binary tree
Output: Height or depth
33. Shortest Path
Find the shortest path between two nodes in a graph.
Input: Graph and two nodes
Output: Shortest path length or path
Hard Level Questions
34. Choco and Chocolate
Choco has N money and wants to buy consecutive chocolates from a shop. Each chocolate type (a-z) has a cost, and one type can be chosen for free. Maximize the number of chocolates Choco can buy.
Input:
- Line 1: Integers A (number of chocolates), B (money)
- Line 2: String of A lowercase characters (chocolate types)
- Line 3: 26 integers (costs of each chocolate type a-z)
Output: Maximum number of chocolates (e.g., Input: 6 10, "aabcda", [5, 4, 4, 5, 1, ...] → Output: 4)
35. Trapping Rain Water
Calculate the amount of water trapped between bars of given heights after raining.
Input: Array of heights (e.g., [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1])
Output: Units of water trapped (e.g., 6)
36. Longest Palindromic Subsequence
Find the length of the longest palindromic subsequence in a string.
Input: String
Output: Length of longest palindromic subsequence
37. Stock Trading Problem
Given predicted stock prices for each minute, maximize profit by buying one share, selling any number of shares, or doing nothing each minute.
Input: Array of stock prices
Output: Maximum profit
38. String Pattern Matching
Find the longest recurring pattern (at least 2 adjacent characters recurring at least twice) in a string.
Input: String
Output: Longest recurring pattern
39. Matrix Chain Multiplication
Find the most efficient way to multiply a sequence of matrices.
Input: Array of matrix dimensions
Output: Minimum number of multiplications
40. Longest Common Subsequence
Find the length of the longest common subsequence between two strings.
Input: Two strings
Output: Length of LCS
41. Edit Distance
Calculate the minimum number of operations (insert, delete, replace) to transform one string into another.
Input: Two strings
Output: Minimum edit distance
42. Coin Change Problem
Count the number of ways to make a target amount using given coin denominations.
Input: Coin denominations and target amount
Output: Number of ways
43. 0/1 Knapsack Problem
Maximize the value of items within a weight limit, given their weights and values.
Input: Item weights, values, and weight limit
Output: Maximum value
44. Maximum Subarray Sum
Find the contiguous subarray with the largest sum.
Input: Array of integers
Output: Maximum sum
45. Maximum Product Subarray
Find the contiguous subarray with the largest product.
Input: Array of integers
Output: Maximum product
46. Maximal Subset (Largest Submatrix)
Find the largest submatrix containing only 1s in a binary matrix.
Input: Binary matrix (0s and 1s)
Output: Size of largest submatrix with all 1s
47. Optimizing Roman Numbers
Optimize a Roman numeral string to its minimal form.
Input: Roman numeral (e.g., "XXXXX")
Output: Optimized form (e.g., "L")
Questions with Incomplete Statements
48. Game of Profit
Optimize profit based on a given scenario (likely involves greedy or dynamic programming).
Input: Scenario-specific data
Output: Maximum profit
49. Magical Vowels
Manipulate a string based on vowel-related conditions (likely involves string processing).
Input: String
Output: Processed string or count
50. Student for Viva
Solve a scheduling or selection problem for viva allocation (likely involves logical reasoning).
Input: Student or scheduling data
Output: Optimal allocation
51. Oxygen Cylinders Management
Comma-separated list of 4 items: Optimize resource allocation for oxygen cylinders (likely involves logistics or greedy algorithms).
Input: Resource data
Output: Optimal allocation
52. Owner of Shop and Smart Kiddo
Solve a logic-based or arithmetic puzzle involving a shop owner and a child.
Input: Scenario-specific data
Output: Solution to puzzle
Final Motivation
EPAM offers incredible opportunities for career growth in a global technology company. With proper preparation using this guide, you'll be well-equipped to tackle their coding assessment and secure your position as a software engineer.
The journey might seem challenging, but remember that every expert was once a beginner. Stay consistent, practice regularly, and believe in your ability to succeed.
Good luck with your EPAM interview!
Join Telegram group for discussion!
🧰 Useful Resources for Your Placement Prep
- ✅ Free Mock Test
- ✅ ATS Score Checker & Resume Optimizer
- ✅ Previous Year Coding Questions (PYQs)
- ✅ Roadmaps
- ✅ Interview Questions
- ✅ Resume Templates
- ✅ Free Placement Materials (Google Drive)
Explore previous year questions from top companies to boost your placement prep: