This blog contains TCS DCA (Digital Capability Assessment) Questions that were asked on 28th September 2021 morning slot 11 AM.

Evening slot questions of TCS Digital capability assessment can be accessed from here.

Below were the list of the questions that were asked, please visit each question and if you know any other way to solve the problem then please let us know in the comment section or mail us at technonamecontact@gmail.com.

You can also check out TCS DCA questions that were asked on 27th September from here.

**Question 1**

A man invests a certain amount on monthly basis in a bank. He withdraws that money once in 4 years which is a leap year, to make a big scale purchase .He starts next investment exactly 183 days after the purchase .

Initially, he makes a note of his purchase date

Given the date(dd) and month(mm) of his purchase. The task here is to help him find the date and month to start his investment.This question was asked in 28th September 2021 Morning Slot at 11 am

His next investment date is calculated from the next day of his purchase.

Display the date as on 183rd day.

**Example 1:**

Input:

15–Value of dd

January-Value of mm

Output:

16 July- Date 183 days after his purchase

**Constraints**:

D<dd<=12

mm – {January to December}

**Inputs **

First input-Accept value for dd (positive integer number).

Second Input-Accept value for mm (month)

**The output format for testing:**The output should be a positive integer number followed by the name of the month.

**Solution in Python**

```
# Solution by Technoname.com
def getDate(d, m):
days = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
month = ['January', 'February',
'March', 'April',
'May', 'June',
'July', 'August',
'September', 'October',
'November', 'December']
cnt = 183
cur_month = month.index(m)
cur_date = d
while(1):
while(cnt > 0 and cur_date <= days[cur_month]):
cnt -= 1
cur_date += 1
if(cnt == 0):
break
cur_month = (cur_month + 1) % 12
cur_date = 1
print(cur_date, month[cur_month])
D = int(input())
M = input()
getDate(D, M)
```

**Solution in Java**

```
//Solution by Technoname.com
import java.util.Scanner;
class Technoname
{
public static void getDate(int d, String m)
{
int[] days = { 31, 29, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31 };
String[] month = { "January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December" };
int count = 183;
int current_month = 0;
for(int i = 0; i < 12; i++)
if (m == month[i])
current_month = i;
int current_date = d;
while (true)
{
while (count > 0 && current_date <= days[current_month])
{
count -= 1;
current_date += 1;
}
if (count == 0)
break;
current_month = (current_month + 1) % 12;
current_date = 1;
}
System.out.println(current_date + " " +month[current_month]);
}
public static void main(String args[])
{
int D;
String M;
Scanner sc=new Scanner(System.in);
D=sc.nextInt();
M=sc.next();
getDate(D, M);
}
}
```

**Solution in C++**

```
//Solution by Technoname.com and contributed by akash99@gmail.com
#include <iostream>
using namespace std;
void getDate(int d, string m)
{
int days[] = {31, 29, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31};
string month[] = {“January”, “February”, “March”,
“April”, “May”, “June”, “July”,
“August”, “September”, “October”,
“November”, “December”};
int count = 183;
int current_month = 0;
for (int i = 0; i 0 && current_date <= days[current_month])
{
count -= 1;
current_date += 1;
}
if (count == 0)
break;
current_month = (current_month + 1) % 12;
current_date = 1;
}
cout << current_date << " " <> D;
cin >> M;
getDate(D, M);
return 0;
}
```

**Question 2 :**

There are ‘N’ number of companies participating in the drive. The commencement timings of the interviews of ‘N’ companies is given as start[] array elements and their respective end timings are given as end[] array elements. The task here is to find the maximum number of interviews a single candidate can attend keeping the following points in mind:

All the interview timings are in ‘p.m’.

• The candidate cannot attend an interview if its timings overlap with the timings of another company’s interview. Say, an interview starts at 1 p.m. and ends at 4 p.m., he cannot attend the interview of another company between 1 p.m. to 4 p.m.

Only one candidate can be scheduled in the given time slot

Assume, the input for end time(end[]) is always sorted in ascending order.

**Example**

**Input **

66- Value of N

(2,4,1,6,9,6)-start[], Elements start[0] to start[N-1],

where each input element is separated by a new line

(3,5,7,8,10,10)-end[], Elements end[0] to end[N-1], where each input element is separated by a new line

**Output**

4

**Solution in Java**

```
//Solution by Technoname.com
import java.util.Scanner;
class TechnoName
{
public static void main(String args[])
{
Scanner Sc=new Scanner(System.in);
int size=Sc.nextInt();
int[] starttime=new int[size];
int[] endtime=new int[size];
for(int i=0;i<size;i++)
{
starttime[i]=Sc.nextInt();
}
for(int j=0;j<size;j++)
{
endtime[j]=Sc.nextInt();
}
int count=1;
int result=endtime[0];
for(int k=0;k<size-1;k++)
{
if(result<=starttime[k+1])
{
result=endtime[k+1];
count++;
}
}
System.out.println(count);
}
}
```

The above question is solved in Java, if you know the solution of the above code in any other language then please let us know in the comment section.

Question numbers 1 and 2 were asked in morning slot 11 AM, Evening slot questions are available here.

You can also check some other coding questions that were asked in the previous DCA (Digital capability Assessment) from here

Please check most asked programming questions of strings with examples by clicking here, after that you might get a deep knowledge about string operations, in short, it will be helpful in clearing the interview

Thanks for reading this article so far. If you like this article, then please share it with your friends and colleagues. If you have any questions or feedback, then please drop a note.

You can also follow us on Twitter for daily updates.

At what time you have updated these coding questions here bro??

Hi Akash, After completion of the exam, I analysed the questions and then uploaded

Is there any Telegram group?

Please upload the answers in C++ too if you can.

Thanks,

1. First program in C++:

#include

using namespace std;

void getDate(int d, string m)

{

int days[] = {31, 29, 31, 30, 31, 30,

31, 31, 30, 31, 30, 31};

string month[] = {“January”, “February”, “March”,

“April”, “May”, “June”, “July”,

“August”, “September”, “October”,

“November”, “December”};

int count = 183;

int current_month = 0;

for (int i = 0; i 0 && current_date <= days[current_month])

{

count -= 1;

current_date += 1;

}

if (count == 0)

break;

current_month = (current_month + 1) % 12;

current_date = 1;

}

cout << current_date << " " <> D;

cin >> M;

getDate(D, M);

return 0;

}

Thanks for the code , your code is published

#include

def function(day,month):

#d = list()

m = [“january”,”february”,”march”,”april”,”may”,”june”,”july”,”august”,”september”,”october”,”november”,”december”]

d = [31,29,31,30,31,30,31,31,30,31,30,31]

s = month.lower()

j = -1

for i in range(12):

if m[i] == s:

j = i

break

v = 183 + day

j = j + 6

if j > 11:

j = j%12

day = day + 1

if day > d[j]:

day = day % d[j]

j = j+ 1

res= str(day) + ” “+ str(m[j])

print(res)

Thanks for the code !!

First program ans is wrong. If you give 31 December as input it will give 31 June as answer which is wrong

Okay will check for it , Meanwhile if you have solution please share

@Akshat Please update for DCA Sept 28 2021 : 4PM Slot also.

Already published on website , please check

https://technoname.com/index.php/2021/09/28/tcs-digital-capability-assessment-solutions-28-sept-2021/

#Another approach, Python3

a = int(input())

b = input()

month = [‘January’, ‘February’,

‘March’, ‘April’,

‘May’, ‘June’,

‘July’, ‘August’,

‘September’, ‘October’,

‘November’, ‘December’]

c = 183

month_ans = 0

day = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

for i in range(0,len(month)-1):

if ((i % 2) == 0) and (c>=31):

c = c-31

month_ans +=1

elif ((i % 2) != 0) and (c>=30):

c = c – 30

month_ans +=1

elif (month[i] == ‘February’) and (c>=29):

c = c -29

month_ans +=1

p = c + 1

x = 0

for i in range(0,len(month)):

if b in month:

x = month.index(b)

months = x + month_ans

if months >12:

months_1 = months – 12

ans1 = month[months_1]

else:

ans1 = month[months]

ans2 = a + p

print(ans2,ans1)

Nice approach

Second Program in Python:

companies = int(input())

start_times = []

end_times = []

for i in range(companies):

start_times.append(int(input()))

for j in range(companies):

end_times.append(int(input()))

count = 1

res = end_times[0]

for i in range(companies-1):

if res <= start_times[i+1]:

res = end_times[i+1]

count += 1

print(count)

Good approach , thanks

If This is sept 28 11Am ques then how you are replying to Akash at sept 28 10:34 Am

Brother, there is a time glitch in our website, will try to fix this soon

And this blog is published after the exam, also you can verify these questions with anyone who gave the exam on 11 am

Sorry for the inconvenience

First Program in JAVA

import java.util.Scanner;

public class HelloWorld{

public static void main(String []args){

int[] days = { 31, 29, 31, 30, 31, 30,

31, 31, 30, 31, 30, 31 };

String[] month = { “January”, “February”, “March”,

“April”, “May”, “June”, “July”,

“August”, “September”, “October”,

“November”, “December” };

int D;

String M;

Scanner sc=new Scanner(System.in);

D=sc.nextInt();

M=sc.next();

int td=0;

for(int i=0;i366){

td-=366;

for(int i=0;itd){

nd-=days[i];

nm=i;

nnd=td-nd;

System.out.println(nnd+” “+month[nm]);

break;

}

}

}

else{

for(int i=0;itd){

nd-=days[i];

nm=i;

nnd=td-nd;

System.out.println(nnd+” “+month[nm]);

break;

}

}

}

}

}

Good Approach.

In the second question there was a condition that the candidate can choose to start from any company he/she wants. This piece of code will only work if the candidate starts from Company A i.e the first element in the array. All test cases will not pass.

Good observation , will check and let u know ,if u have solution please let us know

Hello Akash,

Can you please upload 1st question in C

2nd program

n = int(input())

s = []

e = []

rl = []

t = []

f = 1

c = 1

for i in range(n):

s.append(int(input()))

for i in range(n):

e.append(int(input()))

for i in range(s[0], e[0]+1):

rl.append(i)

for i in range(1, n):

for j in range(s[i], e[i]+1):

t.append(j)

for x in t:

if x in rl:

f = 0

break

if f:

rl = rl + t

c += 1

t = []

f = 1

print(c)

Good approach

1st question in c++:

#include

using namespace std;

int main()

{

int d;

string m;

cin>>d>>m;

int days[]={31,29,31,30,31,30,31,31,30,31,30,31};

string months[]={“January”,”February”,”March”,”April”,”May”,”June”,”July”

,”August”,”September”,”October”,”November”,”December”};

int rd,cm;

string rm;

for(int i=0;i<12;i++)

{

if(m==months[i])

{ cm=i; break;}

}

rm=months[cm];

rd = days[cm]-d;

while(rd<182 && cm<12)

{

rd+=days[cm];

cm++;

}

if(rd == 182)

rd = days[cm];

else

rd = rd-182;

cout<<rd<<" "<<months[cm];

return 0;

}

2ns Question in C++:

#include

using namespace std;

int main()

{

int n;

cin>>n;

int start[n];

for(int i=0;i>start[i];

int end[n];

for(int i=0;i>end[i];

int maxslots = INT_MIN;

int currslots = 1;

int s,e;

for(int i=0;i<n;i++)

{

s=start[i];

e=end[i];

currslots = 1;

for(int j=i+1;je)

{

currslots++;

s=start[j];

e=end[j];

maxslots = max(currslots,maxslots);

}

}

}

cout<<maxslots<<endl;

return 0;

}

Very well-written code in C++.

dd=int(input())

h=0

mm=int(input())

mm=str(mm)

mm=mm.lstrip(‘0’)

mm=int(mm)-1

l=[31,29,31,30,31,30,31,31,30,31,30,31]

k=183

k=k-(l[mm]-dd)

h+=1

if mm==11:

mm=1

else:

mm+=1

while(k>0):

k=k-l[mm]

h+=1

if mm<=10:

if k<l[mm+1]:

break

elif mm==11 and k<l[1]:

break

else:

pass

if mm==11:

mm=1

else:

mm+=1

if mm==11:

mm=1

else:

mm+=1

print(k,mm)

1st Answer C++

#include

using namespace std;

int main(){

int n;

cin>>n;

int a[n],b[n];

for(int i=0;i>a[i];

}

for(int i=0;i>b[i];

}

//sort the arrays according to end time if not

// given sorted in input

for(int i=0;i<n-1;i++){

for(int j=0;j<n-i;j++){

if(b[j+1]<b[j]){

int temp=a[j+1];

a[j+1]=a[j];

a[j]=temp;

temp=b[j+1];

b[j+1]=b[j];

b[j]=temp;

}

}

}

}

int count=1;

int end=b[0];

for(int i=1;i=end){

count++;

end=b[i];

}

}

cout<<count<<endl;

return 0;

}

2nd Answer C++

#include

using namespace std;

int main(){

int n;

cin>>n;

int a[n],b[n];

for(int i=0;i>a[i];

}

for(int i=0;i>b[i];

}

//sort the arrays according to end time if not

// given sorted in input

for(int i=0;i<n-1;i++){

for(int j=0;j<n-i;j++){

if(b[j+1]<b[j]){

int temp=a[j+1];

a[j+1]=a[j];

a[j]=temp;

temp=b[j+1];

b[j+1]=b[j];

b[j]=temp;

}

}

}

}

int count=1;

int end=b[0];

for(int i=1;i=end){

count++;

end=b[i];

}

}

cout<<count<<endl;

return 0;

}

1st Answer C++

#include

using namespace std;

struct months{

int days;

string name;

};

int main(){

int day;

string month;

cin>>day>>month;

months arr[12];

arr[0].days=31;

arr[0].name=”January”;

arr[1].days=29;

arr[1].name=”February”;

arr[2].days=31;

arr[2].name=”March”;

arr[3].days=30;

arr[3].name=”April”;

arr[4].days=31;

arr[4].name=”May”;

arr[5].days=30;

arr[5].name=”June”;

arr[6].days=31;

arr[6].name=”July”;

arr[7].days=30;

arr[7].name=”August”;

arr[8].days=31;

arr[8].name=”September”;

arr[9].days=30;

arr[9].name=”Octomber”;

arr[10].days=31;

arr[10].name=”November”;

arr[11].days=31;

arr[11].name=”December”;

int i;

for( i=0;i0){

i=i%12;

if(diff-arr[i].days>0){

diff=diff-arr[i].days;

i++;

}

else{

cout<<diff<<" "<<arr[i].name<<endl;

day=0;

}

}

return 0;

}

2nd Answer C++

#include

using namespace std;

int main(){

int n;

cin>>n;

int a[n],b[n];

for(int i=0;i>a[i];

}

for(int i=0;i>b[i];

}

//sort the arrays according to end time if not

// given sorted in input

for(int i=0;i<n-1;i++){

for(int j=0;j<n-i;j++){

if(b[j+1]<b[j]){

int temp=a[j+1];

a[j+1]=a[j];

a[j]=temp;

temp=b[j+1];

b[j+1]=b[j];

b[j]=temp;

}

}

}

}

int count=1;

int end=b[0];

for(int i=1;i=end){

count++;

end=b[i];

}

}

cout<<count<<endl;

return 0;

}

# python approch 2nd problem

start = [2,4,1,6,9,6]

end = [3,5,7,8,10,10]

res = 1

E = end[0]

for i in range(1 , len(start)):

if start[i] <= E :

res+=1

E=end[i]

print(res)

Good approach.

Second Question in Python3:

n = int(input())

start =[]

end = []

for i in range(0,n):

st_element= int(input())

start.append(st_element)

for i in range(0,n):

en_element= int(input())

end.append(en_element)

start.sort()

end.sort()

print(start,end)

count = 0

for j in range(0,n-1):

for i in range(1,n):

if end[j]<start[i]:

count+=1

break

print(count)

Good efforts Unnati.

2nd PROGRAM:

n=int(input())

st=[]

et=[]

for i in range(n):

s=int(input())

e=int(input())

st.append(s)

et.append(e)

print(st)

print(et)

c=1

x=et[0]

for i in range(n-1):

if x<=st[i+1]:

x=et[i+1]

c=c+1

print(c)

first program in java

public static String addDate(int day, String month) {

String[] arrayOfMonths = {“January”, “February”, “March”, “April”, “May”, “June”, “July”, “August”, “September”, “October”, “November”, “December”};

List months = List.of(arrayOfMonths);

LocalDate date = LocalDate.parse(“2000-” + months.indexOf(month) + 1 + “-” + day);

List collectedDates = Arrays.stream(date.plusDays(183).toString().split(“-“)).toList();

return months.get(Integer.parseInt(collectedDates.get(1))-1) + “-” + collectedDates.get(2);

}

Good efforts, happy coding !!

Hii can someone share mcq questions or where to get mcqs for tcs dca

N = 6

start = [2,4,1,6,9,6]

end = [3,5,7,8,10,10]

count = 0

for i in range(len(start)-1):

if end[i] > start[i]:

count+=1

if start[i+1] in range(start[i],end[i]):

count -= 1

print(count)

2nd ques in python:

N = 6

start = [2,4,1,6,9,6]

end = [3,5,7,8,10,10]

count = 0

for i in range(len(start)-1):

if end[i] > start[i]:

count+=1

if start[i+1] in range(start[i],end[i]):

count -= 1

print(count)

Thanks for contributing.

Q2 C++ code

#include

using namespace std;

int main()

{

int n,i,c=1;

cin>>n;

int s[n],e[n];

for(i=0;i>s[i]>>e[i];

}

if(n==0)

cout<<"0";

else if(n==1)

cout<<"1";

else

{

int temp=e[0];

for(i=1;i=temp)

{

c++;

temp=e[i-1];

}

}

cout<<c;

}

return 0;

}

bro is there something wrong on the website. My Code is modified on pasting here. Making it syntactically wrong

Hi Saumya, it’s a normal comment section that may not take code with proper indentation, sorry for the inconvenience.

package dca_practice;

import java.time.Month;

import java.util.*;

public class previous_Year {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

int days=sc.nextInt();

String month=sc.next();

imp(days,month);

}

public static void imp(int days,String month)

{

int dm=Month.valueOf(month.toUpperCase()).getValue();

int tdm=dm+6;

if(tdm>12)

{

tdm=tdm-12;

}

days=days+1;

if(days>30)

{

tdm=tdm+(int)Math.ceil(days/30);

days=days-30;

}

System.out.print(days+” “);

System.out.println(Month.of(tdm).name());

}

}

Good efforts shivam , Happy coding :}