Infosys Placement Paper – PES University, Bengaluru
Complete placement test questions and solutions
Placement Paper Details
Hello, I’m Aditya Verma from PES University, Bangalore.
I successfully cleared the Infosys placement drive on
March 15, 2025.
Infosys conducted their recruitment through the Infosys Springboard platform with an updated test pattern. Here’s my detailed experience to help freshers preparing this year.
Key Highlights:
- Test Platform: Infosys Springboard (new platform)
- Total Questions: 65
- Total Time: 100 minutes
- No negative marking
- Sections: 3 with individual timing
Detailed Test Pattern:
- Logical Reasoning & Problem Solving: 20 Questions (35 minutes)
- Quantitative Aptitude: 20 Questions (35 minutes)
- Technical & Coding: 25 Questions (30 minutes)
Preparation Strategy:
- Logical Reasoning: Daily puzzles from BrainDen
- Quantitative: Focused on percentages and profit–loss
- Coding: Practiced pattern problems and basic DSA
- Technical: Revised DBMS and OOPs thoroughly
From 800 applicants, 180 students were shortlisted. After interviews, 75 candidates received final offer letters.
Full Test Paper
Infosys Online Test - Springboard Platform
Date: March 15, 2025
Platform: Infosys Springboard
Duration: 100 Minutes
Total Questions: 65
Part A: Logical Reasoning (20 Questions)
-
Find the next number: 2, 6, 12, 20, 30, ?
- 40
- 42
- 44
- 46
-
If TEACHER is coded as 2025138518, how is
STUDENT coded?
- 192021451420
- 192120451420
- 192021441420
- 192120441420
Part B: Quantitative Aptitude (20 Questions)
-
A shopkeeper sells an item at 20% profit. If the cost price increases by 10%
and selling price increases by ₹30, the profit becomes 25%.
Find the original cost price.
- ₹400
- ₹500
- ₹600
- ₹800
Part C: Technical & Coding Section
Write solutions:
// Problem 1: Hotel Booking System
package com.infosys.hotel;
import java.util.*;
import java.time.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/*
Production-ready Hotel Booking Management System
Demonstrates Concurrency, Design Patterns, and Clean Architecture
*/
public class HotelBookingSystem {
public enum RoomType { STANDARD, DELUXE, SUITE, PRESIDENTIAL }
public enum BookingStatus { CONFIRMED, CHECKED_IN, CHECKED_OUT, CANCELLED, NO_SHOW }
// Room Entity (Immutable)
public static class Room {
private final String roomNumber;
private final RoomType type;
private final double pricePerNight;
private final int capacity;
private final Set amenities;
public Room(String roomNumber, RoomType type, double pricePerNight,
int capacity, Set amenities) {
if (pricePerNight <= 0 || capacity <= 0) {
throw new IllegalArgumentException("Invalid room data");
}
this.roomNumber = roomNumber;
this.type = type;
this.pricePerNight = pricePerNight;
this.capacity = capacity;
this.amenities = Collections.unmodifiableSet(new HashSet<>(amenities));
}
public double calculatePrice(int nights, double discount) {
double total = pricePerNight * nights;
return total - (total * discount / 100);
}
public String getRoomNumber() { return roomNumber; }
public int getCapacity() { return capacity; }
public RoomType getType() { return type; }
@Override
public String toString() {
return "Room[" + roomNumber + ", " + type + ", ₹" + pricePerNight + "]";
}
}
// Customer Entity
public static class Customer {
private final String customerId;
private final String name;
private int loyaltyPoints;
public Customer(String customerId, String name) {
this.customerId = customerId;
this.name = name;
this.loyaltyPoints = 0;
}
public void addPoints(int points) {
this.loyaltyPoints += points;
}
public int getLoyaltyPoints() {
return loyaltyPoints;
}
}
}
// Problem 2: Banking Transaction System
package com.infosys.banking;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.ReentrantLock;
public class BankingTransactionSystem {
static class BankAccount {
private final String accountNumber;
private BigDecimal balance;
private final ReentrantLock lock = new ReentrantLock();
public BankAccount(String acc, BigDecimal bal) {
this.accountNumber = acc;
this.balance = bal;
}
public boolean deposit(BigDecimal amount) {
lock.lock();
try {
balance = balance.add(amount);
return true;
} finally {
lock.unlock();
}
}
public boolean withdraw(BigDecimal amount) {
lock.lock();
try {
if (balance.compareTo(amount) < 0) return false;
balance = balance.subtract(amount);
return true;
} finally {
lock.unlock();
}
}
public BigDecimal getBalance() {
return balance;
}
@Override
public String toString() {
return "Account[" + accountNumber + ", ₹" + balance + "]";
}
}
public static void main(String[] args) {
BankAccount acc1 = new BankAccount("123456789012", new BigDecimal("50000"));
BankAccount acc2 = new BankAccount("987654321098", new BigDecimal("30000"));
acc1.withdraw(new BigDecimal("10000"));
acc2.deposit(new BigDecimal("10000"));
System.out.println(acc1);
System.out.println(acc2);
}
}
Interview Questions
Infosys Technical Interview Questions 2025:
- Difference between ArrayList and Vector in Java
- What is multithreading? Explain with example
- Explain SQL joins with practical examples
- What is inheritance and polymorphism?
- How does garbage collection work in Java?
HR Interview Questions:
- Why Infosys?
- Tell me about your projects
- How do you handle pressure?
- Where do you see yourself in 3 years?
- Are you willing to relocate?
Coding Problems Asked:
// Question: String Manipulation Problems
import java.util.*;
public class StringProblems {
// 1. Check if string is palindrome
public static boolean isPalindrome(String str) {
if (str == null) return false;
str = str.toLowerCase().replaceAll("[^a-z0-9]", "");
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
// 2. Find first non-repeating character
public static Character firstNonRepeatingChar(String str) {
if (str == null || str.isEmpty()) return null;
Map frequency = new LinkedHashMap<>();
for (char c : str.toCharArray()) {
frequency.put(c, frequency.getOrDefault(c, 0) + 1);
}
for (Map.Entry entry : frequency.entrySet()) {
if (entry.getValue() == 1) {
return entry.getKey();
}
}
return null;
}
// 3. Count vowels and consonants
public static Map countVowelsConsonants(String str) {
if (str == null) {
return Map.of("vowels", 0, "consonants", 0);
}
str = str.toLowerCase();
int vowels = 0;
int consonants = 0;
for (char c : str.toCharArray()) {
if (c >= 'a' && c <= 'z') {
if ("aeiou".indexOf(c) != -1) {
vowels++;
} else {
consonants++;
}
}
}
return Map.of("vowels", vowels, "consonants", consonants);
}
// 4. Reverse words in a string
public static String reverseWords(String str) {
if (str == null || str.trim().isEmpty()) return str;
String[] words = str.trim().split("\\s+");
StringBuilder result = new StringBuilder();
for (int i = words.length - 1; i >= 0; i--) {
result.append(words[i]);
if (i > 0) result.append(" ");
}
return result.toString();
}
// Test method
public static void main(String[] args) {
System.out.println("Palindrome check:");
System.out.println("madam: " + isPalindrome("madam"));
System.out.println("hello: " + isPalindrome("hello"));
System.out.println("\nFirst non-repeating character:");
System.out.println("swiss: " + firstNonRepeatingChar("swiss"));
System.out.println("programming: " + firstNonRepeatingChar("programming"));
System.out.println("\nCount vowels and consonants:");
Map counts = countVowelsConsonants("Hello World");
System.out.println("Vowels: " + counts.get("vowels"));
System.out.println("Consonants: " + counts.get("consonants"));
System.out.println("\nReverse words:");
System.out.println(reverseWords("Infosys Placement Preparation"));
}
}
-- SQL Problems Asked in Infosys Interview
-- 1. Find nth highest salary
SELECT DISTINCT salary
FROM employees
ORDER BY salary DESC
LIMIT 1 OFFSET (n-1);
-- 2. Find duplicate emails
SELECT email, COUNT(*)
FROM users
GROUP BY email
HAVING COUNT(*) > 1;
-- 3. Employees earning more than their managers
SELECT
e.emp_name,
e.salary,
m.emp_name AS manager_name,
m.salary AS manager_salary
FROM employees e
JOIN employees m
ON e.manager_id = m.emp_id
WHERE e.salary > m.salary;
-- 4. Department with maximum employees
SELECT
d.dept_name,
COUNT(e.emp_id) AS employee_count
FROM departments d
LEFT JOIN employees e
ON d.dept_id = e.dept_id
GROUP BY d.dept_id, d.dept_name
ORDER BY employee_count DESC
LIMIT 1;
-- 5. Monthly hiring trend
SELECT
YEAR(hire_date) AS year,
MONTH(hire_date) AS month,
COUNT(*) AS hires
FROM employees
GROUP BY YEAR(hire_date), MONTH(hire_date)
ORDER BY year DESC, month DESC;
Preparation Tips
Infosys Placement Preparation Tips 2026:
- Logical Reasoning: Practice puzzles, seating arrangements, and blood relations
- Quantitative: Focus on percentages, ratios, and profit–loss problems
- Technical: Strong understanding of OOPs, DBMS, and basic DSA
- Coding: Practice pattern problems and string manipulations
- Communication: Prepare for HR round with confidence
Important: Infosys values problem-solving skills and clean code. Make sure your solutions are efficient and well-documented.
Key Areas to Focus
Aptitude
Quantitative and logical reasoning sections
Reasoning
Verbal and non-verbal reasoning tests
Verbal Ability
Reading comprehension and grammar
Technical
Coding and technical questions
Was this paper helpful?
Help other students by rating this placement paper
Share Your Placement Paper
Your placement paper can help thousands of other students prepare better.