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

  1. Read Carefully: Understand the problem completely before coding
  2. Think Out Loud: Practice explaining your approach
  3. Start Simple: Begin with brute force, then optimize
  4. Test Thoroughly: Check edge cases and normal cases
  5. 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

3. Interview Preparation

4- CS Fundamentals:

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

Explore previous year questions from top companies to boost your placement prep: