TCS NQT Practice Coding Questions and Answers
Sample Practice Coding Questions for TCS NQT
On this page you are going to see TCS NQT Coding Questions along with Answers to practice in the following languages:
- C
- C++
- Java
- Python
TCS NQT Coding Practice Questions
Day 1 – Slot 1 – Question 1:
Problem Statement –
A chocolate factory is packing chocolates into the packets. The chocolate packets here represent an array of N number of integer values. The task is to find the empty packets(0) of chocolate and push them to the end of the conveyor belt(array).
Example 1 :
N=8 and arr = [4,5,0,1,9,0,5,0].
There are 3 empty packets in the given set. These 3 empty packets represented as O should be pushed towards the end of the array
Input :
8 – Value of N
[4,5,0,1,9,0,5,0] – Element of arr[O] to arr[N-1],While input each element is separated by newline
Output:
4 5 1 9 5 0 0 0
Example 2:
Input:
6 — Value of N.
[6,0,1,8,0,2] – Element of arr[0] to arr[N-1], While input each element is separated by newline
Output:
6 1 8 2 0 0
Solution in C:
#include <stdio.h> int main() { int n, j = 0; scanf("%d", &n); int a[n]; for (int i = 0; i < n; i++) { scanf("%d", &a[j]); if (a[j] != 0) { j++; } } for (int i = 0; i < j; i++) { printf("%d ", a[i]); } return 0; }
Solution in C++:
#include <bits/stdc++.h> using namespace std; int main () { int n, j = 0; cin >> n; int a[n] = { 0 }; for (int i = 0; i < n; i++) { cin >> a[j]; if (a[j] != 0) { j++; } } for (int i = 0; i < n; i++) { cout << a[i] << " "; } }
Solution in Java:
import java.util.*; class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int arr[]=new int[n]; for(int i=0;i< n;i++) arr[i]=sc.nextInt(); int count=0; for(int i=0;i< n;i++) if(arr[i]!=0) arr[count++]=arr[i]; for(int i=count;i < n;i++) arr[i]=0; for(int i=0;i< n;i++) System.out.print(arr[i]+" "); } }
Solution in Python:
n=int(input()) j=0 L=[0 for i in range(n)] for i in range(n): a=int(input()) if a!=0: L[j]=a j+=1 for i in L: print(i,end=" ")
Day 1 – Slot 1 – Question 2:
Problem Statement –
Joseph is learning digital logic subject which will be for his next semester. He usually tries to solve unit assignment problems before the lecture. Today he got one tricky question. The problem statement is “A positive integer has been given as an input. Convert decimal value to binary representation. Toggle all bits of it after the most significant bit including the most significant bit. Print the positive integer value after toggling all bits”.
Constrains-
1<=N<=100
Example 1 :
Input :
10 -> Integer
Output :
5 -> result- Integer
Explanation:
Binary representation of 10 is 1010. After toggling the bits(1010), will get 0101 which represents “5”. Hence output will print “5”.
Solution in C:
#include <stdio.h> #include <math.h> int main() { int n; scanf("%d", &n); int k = (1 << (int)(log2(n) + 1)) - 1; printf("%d", n ^ k); return 0; }
Solution in C++:
#include<bits/stdc++.h> using namespace std; int main () { int n; cin >> n; int k = (1 << (int) floor (log2 (n)) + 1) - 1; cout << (n ^ k); }
Solution in Java:
import java.util.*; class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int no=sc.nextInt(); String bin=""; while(no!=0) { bin=(no&1)+bin; no=no>>1; } bin=bin.replaceAll("1","2"); bin=bin.replaceAll("0","1"); bin=bin.replaceAll("2","0"); int res=Integer.parseInt(bin,2); System.out.println(res); } }
Solution in Python:
import math n=int(input()) k=(1<< int(math.log2(n))+1)-1 print(n^k)
Day 1 – Slot 2 – Question 1
Problem Statement –
Jack is always excited about sunday. It is favourite day, when he gets to play all day. And goes to cycling with his friends.
So every time when the months starts he counts the number of sundays he will get to enjoy. Considering the month can start with any day, be it Sunday, Monday…. Or so on.
Count the number of Sunday jack will get within n number of days.
Example 1 :
N=8 and arr = [4,5,0,1,9,0,5,0].
There are 3 empty packets in the given set. These 3 empty packets represented as O should be pushed towards the end of the array
Input :
Input
mon-> input String denoting the start of the month.
13 -> input integer denoting the number of days from the start of the month.
Output :
2 -> number of days within 13 days.
Explanation:
The month start with mon(Monday). So the upcoming sunday will arrive in next 6 days. And then next Sunday in next 7 days and so on.
Now total number of days are 13. It means 6 days to first sunday and then remaining 7 days will end up in another sunday. Total 2 sundays may fall within 13 days.
Solution in C:
#include <stdio.h> #include <string.h> #define MAX_LENGTH 4 int main() { char s[MAX_LENGTH]; scanf("%s", s); int a, ans = 0; scanf("%d", &a); // Map weekdays to their corresponding values char weekdays[][MAX_LENGTH] = { "mon", "tue", "wed", "thu", "fri", "sat", "sun" }; int values[] = {6, 5, 4, 3, 2, 1, 0}; // Find the corresponding value for the input weekday int mapSize = sizeof(weekdays) / sizeof(weekdays[0]); int m = -1; for (int i = 0; i < mapSize; i++) { if (strcmp(s, weekdays[i]) == 0) { m = values[i]; break; } } if (m != -1) { // Calculate the answer if (a - m >= 1) { ans = 1 + (a - m) / 7; } } printf("%d", ans); return 0; }
Solution in C++:
#include <bits/stdc++.h> using namespace std; int main() { string s; cin>>s; int a,ans=0; cin>>a; unordered_map< string,int > m; m["mon"]=6;m["tue"]=5;m["wed"]=4; m["thu"]=3;m["fri"]=2;m["sat"]=1; m["sun"]=0; if(a-m[s.substr(0,3)] >=1) ans=1+(a-m[s.substr(0,3)])/7; cout<< ans; }
Solution in Java:
import java.util.*; class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String str=sc.next(); int n=sc.nextInt(); String arr[]={"mon","tue,","wed","thu","fri","sat","sun"}; int i=0; for(i=0;i< arr.length;i++) if(arr[i].equals(str)) break; int res=1; int rem=6-i; n=n-rem; if(n >0) res+=n/7; System.out.println(res); } }
def main(): s = input() a = int(input()) m = { "mon": 6, "tue": 5, "wed": 4, "thu": 3, "fri": 2, "sat": 1, "sun": 0 } ans = 0 if a - m[s[:3]] >= 1: ans = 1 + (a - m[s[:3]]) // 7 print(ans) if __name__ == "__main__": main()
Day 1 – Slot 2 – Question 2
Problem Statement –
Airport security officials have confiscated several item of the passengers at the security check point. All the items have been dumped into a huge box (array). Each item possesses a certain amount of risk[0,1,2]. Here, the risk severity of the items represent an array[] of N number of integer values. The task here is to sort the items based on their levels of risk in the array. The risk values range from 0 to 2.
Example 1 :
Input :
7 -> Value of N
[1,0,2,0,1,0,2]-> Element of arr[0] to arr[N-1], while input each element is separated by new line.
Output :
0 0 0 1 1 2 2 -> Element after sorting based on risk severity
Example 2:
input : 10 -> Value of N
[2,1,0,2,1,0,0,1,2,0] -> Element of arr[0] to arr[N-1], while input each element is separated by a new line.
Output :
0 0 0 0 1 1 1 2 2 2 ->Elements after sorting based on risk severity.
Explanation:
In the above example, the input is an array of size N consisting of only 0’s, 1’s and 2s. The output is a sorted array from 0 to 2 based on risk severity.
Solution in C:
#include<stdio.h> void swap(int* a, int* b) { int temp = *a; *a = *b; *b = temp; } void sortArray(int arr[], int size) { int low = 0, mid = 0, high = size - 1; while (mid <= high) { if (arr[mid] == 0) { swap(&arr[low], &arr[mid]); low++; mid++; } else if (arr[mid] == 1) { mid++; } else { swap(&arr[mid], &arr[high]); high--; } } } int main() { int n; scanf("%d", &n); int a[n]; for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } sortArray(a, n); for (int i = 0; i < n; i++) { printf("%d ", a[i]); } return 0; }
Solution in C++:
#include <bits/stdc++.h> using namespace std; int main() { int n; cin>>n; int a[n]; for(int i=0;i< n;i++) cin>>a[i]; int l=0,m=0,h=n-1; while(m<=h) { if(a[m]==0) swap(a[l++],a[m++]); else if(a[m]==1) m++; else swap(a[m],a[h--]); } for(int i=0;i< n;i++) cout<< a[i]<<" "; }
Solution in Java:
import java.util.*; class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int arr[]=new int[n]; for(int i=0;i< n;i++) arr[i]=sc.nextInt(); int countZero=0,countOne=0,countTwo=0; for(int i=0;i< n;i++) { if(arr[i]==0) countZero++; else if(arr[i]==1) countOne++; else if(arr[i]==2) countTwo++; } int j =0; while(countZero >0) { arr[j++]=0; countZero--; } while(countOne >0) { arr[j++]=1; countOne--; } while(countTwo >0) { arr[j++]=2; countTwo--; } for(int i=0;i < n;i++) System.out.print(arr[i]+" "); } }
Solution in Python:
n = int(input()) arr = [] for i in range(n): arr.append(int(input())) for i in sorted(arr): print(i, end=" ")
Day 2 – Slot 1 – Question 1
Problem Statement –
Given an integer array Arr of size N the task is to find the count of elements whose value is greater than all of its prior elements.
Note : 1st element of the array should be considered in the count of the result.
For example,
Arr[]={7,4,8,2,9}
As 7 is the first element, it will consider in the result.
8 and 9 are also the elements that are greater than all of its previous elements.
Since total of 3 elements is present in the array that meets the condition.
Hence the output = 3.
Example 1:
Input
5 -> Value of N, represents size of Arr
7-> Value of Arr[0]
4 -> Value of Arr[1]
8-> Value of Arr[2]
2-> Value of Arr[3]
9-> Value of Arr[4]
Output :
3
Example 2:
5 -> Value of N, represents size of Arr
3 -> Value of Arr[0]
4 -> Value of Arr[1]
5 -> Value of Arr[2]
8 -> Value of Arr[3]
9 -> Value of Arr[4]
Output :
5
Constraints
1<=N<=20
1<=Arr[i]<=10000
Solution in C:
#include<stdio.h> #include<limits.h> int main() { int n, c = 0, a, m = INT_MIN; scanf("%d", &n); while (n--) { scanf("%d", &a); if (a >= m) { m = a; c++; } } printf("%d", c); return 0; }
Solution in C++:
#include <bits/stdc++.h> using namespace std; int main() { int n,c=0,a,m=INT_MIN; cin>>n; while(n--) { cin>>a; if(a>m) { m=a; c++; } } cout << c; }
Solution in Java:
import java.util.*; class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int arr[]=new int[n]; for(int i=0;i< n;i++) arr[i]=sc.nextInt(); int max=Integer.MIN_VALUE; int count=0; for(int i=0;i< n;i++) { if(arr[i]>max) { max=arr[i]; count++; } } System.out.println(count); } }
Solution in Python:
import sys n=int(input()) c=0 m=-sys.maxsize-1 while n: n-=1 a=int(input()) if a>m: m=a c+=1 print(c)
Day 2 – Slot 1 – Question 2
Problem Statement –
A supermarket maintains a pricing format for all its products. A value N is printed on each product. When the scanner reads the value N on the item, the product of all the digits in the value N is the price of the item. The task here is to design the software such that given the code of any item N the product (multiplication) of all the digits of value should be computed(price).
Example 1:
Input :
5244 -> Value of N
Output :
160 -> Price
Explanation:
From the input above
Product of the digits 5,2,4,4
5*2*4*4= 160
Hence, output is 160.
Solution in C:
#include<stdio.h> #include<limits.h> int main() { char s[100]; scanf("%s", s); int p = 1; for (int i = 0; i < strlen(s); i++) { p *= (s[i] - '0'); } printf("%d", p); return 0; }
Solution in C++:
You can also check- TCS NQT Registration process