Placement Papers

Infosys

Infosys Placement Paper – PES University, Bengaluru

Complete placement test questions and solutions

On-Campus Placement

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)

  1. Find the next number: 2, 6, 12, 20, 30, ?
    • 40
    • 42
    • 44
    • 46
  2. If TEACHER is coded as 2025138518, how is STUDENT coded?
    • 192021451420
    • 192120451420
    • 192021441420
    • 192120441420

Part B: Quantitative Aptitude (20 Questions)

  1. 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:

  1. Logical Reasoning: Practice puzzles, seating arrangements, and blood relations
  2. Quantitative: Focus on percentages, ratios, and profit–loss problems
  3. Technical: Strong understanding of OOPs, DBMS, and basic DSA
  4. Coding: Practice pattern problems and string manipulations
  5. 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.