Constellation Problem(TCS CodeVita)
Constellation Problem
Constellation Problem is one of the problem that was asked in previous year TCS CodeVita Exam. If you using C++ or Java you have to use the concept of HashMap or STL for solving the particular problem, in case you prefer to code in Python, try to use dictionaries for solving the problem. Here in this article we have tried to explain the problem using C++ Code
Constellation Problem(TCS CodeVita)
Problem Description
Three characters { #, *, . } represents a constellation of stars and galaxies in space. Each galaxy is demarcated by # characters. There can be one or many stars in a given galaxy. Stars can only be in the shape of vowels { A, E, I, O, U }. A collection of * in the shape of the vowels is a star. A star is contained in a 3×3 block. Stars cannot be overlapping. The dot(.) character denotes empty space.
Given 3xN matrix comprising of { #, *, . } character, find the galaxy and stars within them.
Note: Please pay attention to how vowel A is denoted in a 3×3 block in the examples section below.
Constraints
- 3 <= N <= 10^5
Input
- Input consists of a single integer N denoting the number of columns.
Output
- The output contains vowels (stars) in order of their occurrence within the given galaxy. The galaxy itself is represented by the # character.
Example 1
Input
18
* . * # * * * # * * * # * * * . * .
* . * # * . * # . * . # * * * * * *
* * * # * * * # * * * # * * * * . *
Output
U#O#I#EA
Explanation
As it can be seen that the stars make the image of the alphabets U, O, I, E, and A respectively.
Example 2
Input
12
* . * # . * * * # . * .
* . * # . . * . # * * *
* * * # . * * * # * . *
Output
U#I#A
Explanation
As it can be seen that the stars make the image of the alphabet U, I, and A.
Possible solution:
Input:
12
* . * # . * * * # . * .
* . * # . . * . # * * *
* * * # . * * * # * . *
Solution for Constellation Problem
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;cin>>n;
char co[3][n];
for(int i=0;i<3;i++)
{
for(int j=0;j<n;j++)
cin>>co[i][j];
}
for(int i=0;i<n-2;i++)
{
if(co[0][i]=='#') {cout<<"#";continue;}
if(co[0][i]=='.' && co[0][i+1]=='*' && co[0][i+2]=='.')
{
if(co[1][i]=='*' && co[1][i+1]=='*' && co[1][i+2]=='*')
if(co[2][i]=='*' and co[2][i+1]=='.' and co[2][i+2]=='*')
cout<<"A";i+=2;continue;
}
if(co[0][i]=='*' and co[0][i+1]=='*' and co[0][i+2]=='*')
{
if (co[1][i]=='*' and co[1][i+1]=='*' and co[1][i+2]=='*')
{
if (co[2][i]=='*' and co[2][i+1]=='*' and co[2][i+2]=='*')
{cout<<"E";i+=2;continue;}
}
else if(co[1][i]=='.' and co[1][i+1]=='*' and co[1][i+2]=='.')
{
if (co[2][i]=='*' and co[2][i+1]=='*' and co[2][i+2]=='*')
{cout<<"I";i+=2;continue;}
}
else if(co[1][i]=='*' and co[1][i+1]=='.' and co[1][i+2]=='*')
{
if(co[2][i]=='*' and co[2][i+1]=='*' and co[2][i+2]=='*')
{cout<<"O";i+=2;continue;}
}
}
if(co[0][i]=='*' and co[0][i+1]=='.' and co[0][i+2]=='*')
if(co[1][i]=='*' and co[1][i+1]=='.' and co[1][i+2]=='*')
if(co[2][i]=='*' and co[2][i+1]=='*' and co[2][i+2]=='*')
{cout<<"U";i+=2;continue;}
}
}
n=int(input())
co=[]
for i in range(3):co.append(list(input().split()))
i=0
while i<n-2:
if co[0][i]=='#':
print("#",end="")
i+=1
continue
if co[0][i]=='.' and co[0][i+1]=='*' and co[0][i+2]=='.':
if co[1][i]=='*' and co[1][i+1]=='*' and co[1][i+2]=='*':
if co[2][i]=='*' and co[2][i+1]=='.' and co[2][i+2]=='*':
print('A',end="")
if co[0][i]=='*' and co[0][i+1]=='*' and co[0][i+2]=='*':
if co[1][i]=='*' and co[1][i+1]=='*' and co[1][i+2]=='*':
if co[2][i]=='*' and co[2][i+1]=='*' and co[2][i+2]=='*':
print('E',end="")
i+=3
continue
elif co[1][i]=='.' and co[1][i+1]=='*' and co[1][i+2]=='.':
if co[2][i]=='*' and co[2][i+1]=='*' and co[2][i+2]=='*':
print('I',end="")
i+=3
continue
elif co[1][i]=='*' and co[1][i+1]=='.' and co[1][i+2]=='*':
if co[2][i]=='*' and co[2][i+1]=='*' and co[2][i+2]=='*':
print('O',end="")
i+=3
continue
if co[0][i]=='*' and co[0][i+1]=='.' and co[0][i+2]=='*':
if co[1][i]=='*' and co[1][i+1]=='.' and co[1][i+2]=='*':
if co[2][i]=='*' and co[2][i+1]=='*' and co[2][i+2]=='*':
print('U',end="")
i+=3
continue
i+=1
#include
using namespace std;
char func(vector<vector> &grid,int k){
int idx=0;
for(int ct=0;ct<=3;ct++){
int empty=0;
for(int i=0;i<3;i++){
for(int j=k;j>n;
vector<vector> grid(3,vector(n));
for(int i=0;i<3;i++){
for(int j=0;j>ch;
grid[i][j]=ch;
}
}
for(int j=0;j<n;j++){
if(grid[0][j]=='#'){
cout<<"#";
}
else{
cout<<func(grid,j);
j+=2;
}
}
}
Yes you forget increment i =i+3 in galaxy A
In python,you miss increment I for galaxy A
Yes you forget increment i =i+3 in galaxy A
Hey, kindly put your technical queries on Discord