Edisi # 32: Pelatihan TI - masalah saat ini dan tantangan dari perusahaan terkemuka

Halo pembaca yang budiman. Kami lagi dan lagi senang Anda dengan pilihan baru pertanyaan menarik dan tugas dari wawancara ke perusahaan IT terkemuka!

Ngomong-ngomong, jawaban untuk masalah dari masalah sebelumnya telah diterbitkan !



Masalah akan muncul setiap minggu - tetap disini! Kolom ini didukung oleh agen perekrutan Spice IT .

Minggu ini kami mengumpulkan tugas dari wawancara di perusahaan India MakeMyTrip.

Pertanyaan


1. 10 Puzzle Koin
Anda ditutup matanya dan 10 koin diletakkan di depan Anda di atas meja. Anda diizinkan menyentuh koin, tetapi tidak tahu ke mana arahnya. Anda diberitahu bahwa ada 5 koin kepala, dan 5 koin ekor tetapi tidak yang mana.

Bisakah Anda membuat dua tumpukan koin masing-masing dengan jumlah kepala yang sama? Anda dapat membalik koin berapa kali.

Transfer
10 . , , . , 5 , (ยซยป) 5 , (ยซยป) , โ€” .

, ? .

2. Teka-teki Koran
Sebuah koran yang terbuat dari 16 lembar kertas besar yang dilipat dua. Surat kabar itu memiliki 64 halaman sekaligus. Lembar pertama berisi halaman 1, 2, 63, 64.

Jika kita mengambil lembar yang berisi nomor halaman 45. Apa halaman lain yang terkandung dalam lembar ini?

Transfer
16 , . 64 . 1, 2, 63, 64.


*

, 45. ?

Tugas


1. Transpose of Matrix
Write a program to find transpose of a square matrix mat[][] of size N*N. Transpose of a matrix is obtained by changing rows to columns and columns to rows.

Input:
The first line of input contains an integer T, denoting the number of testcases. Then T test cases follow. Each test case contains an integer N, denoting the size of the square matrix. Then in the next line are N*N space separated values of the matrix.

Output:
For each test case output will be the space separated values of the transpose of the matrix

Constraints:
1 <= T <= 15
1 <= N <= 20
-103 <= mat[i][j] <= 103


Example:
Input:

2
4
1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
2
1 2 -9 -2


Output:
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
1 -9 2 -2


Explanation:
Testcase 1: Matriks setelah rotasi adalah: 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4.

Transfer
, mat[][] N*N. .

:
T, . T . N, . N*N .

:


:
1 < = T <= 15
1 < = N <= 20
-103 < = mat[i] [j] < = 103


:
:

2
4
1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
2
1 2 -9 -2


:
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
1 -9 2 -2


:
1: : 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4.

2. Membuntuti nol secara faktorial
Untuk bilangan bulat n temukan jumlah nol yang tertinggal di dalam n! .

Input:
Baris pertama berisi bilangan bulat ' T ' yang menunjukkan jumlah total kasus uji. Dalam setiap kasus uji, ini berisi bilangan bulat ' N '.

Keluaran:
Pada setiap keluaran baris terpisah jawaban atas masalah.

Kendala: Contoh: Input: Output:
1 <= T <= 100
1 <= N <= 1000




1
9


1
Transfer
n n!.

:
'T', . 'N'.

:
.

:
1 < = T <= 100
1 < = N < = 1000


:
:

1
9

:
1

3. Langkah oleh Knight
Given a square chessboard of N x N size, the position of Knight and position of a target is given. We need to find out minimum steps a Knight will take to reach the target position.

Input:
The first line of input contains an integer T denoting the number of test cases. Then T test cases follow. Each test case contains an integer n denoting the size of the square chessboard. The next line contains the X-Y coordinates of the knight. The next line contains the X-Y coordinates of the target.

Output:
Print the minimum steps the Knight will take to reach the target position.

Constraints:
1<=T<=100
1<=N<=20
1<=knight_pos,targer_pos<=N


Example:
Input:

2
6
4 5
1 1
20
5 7
15 20


Output:
3
9

N x N . , , .

:
T, . T . n, . X-Y . X-Y .

:
, , .

:
1<=T<=100
1<=N<=20
1<=knight_pos,targer_pos<=N


:
:

2
6
4 5
1 1
20
5 7
15 20


:
3
9


1
: .
:
2 . .

:
โ€” , โ€” .
1:
2:

1.
1:
2:

.

2
45- 46. , P, 65-p .

,
65-45 = 20
65-46 = 19

, โ€” 19, 20, 45, 46.

1
O(1) :
import java.util.*;
import java.lang.*;
import java.io.*;
class GFG
 {
	public static void main (String[] args)
	 {
	 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	 try{
	     int testCases = Integer.parseInt(br.readLine());
	     while(testCases-->0){
	         int size = Integer.parseInt(br.readLine());
	         int[] arr = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
	         int num = 0;
	         int i=0;
	         int total = size*size;
	         
	         while(num<total && i<size){
	             if(num >= size*(size-1)) { 
	                System.out.print(arr[num] + " ");
	                i++;
	                num = i;
	             }
	             else {
	             System.out.print(arr[num] + " ");
	             num+=size;
	             }
	         }
	         System.out.println();
	     }
	 }
	 catch (Exception e){
	     e.printStackTrace();
	 }
	 }
}

2
import math
for _ in range(int(input())):
n=math.factorial(int(input()))
print(len(str(n))-len(str(n).rstrip("0")))

3
#include<bits/stdc++.h>
using namespace std;

void bfs(bool visited[20][20],int n,int x,int y,int X,int Y,int& count){
    queue<pair<int,int>>q;
    visited[x-1][y-1]=true;
    q.push(make_pair(x,y));
    q.push(make_pair(0,0));
    while(q.size()>1){
        x=q.front().first;
        y=q.front().second;
        if(q.front().first==0 && q.front().second==0){
            q.pop();
            count++;
            q.push(make_pair(0,0));
            continue;
        }
        if(q.front().first==X && q.front().second==Y){
            return;
        }
        if(x>2 && y>1 && visited[x-3][y-2]==false){
            visited[x-3][y-2]=true;
            q.push(make_pair(x-2,y-1));
        }
        if(x>2 && y<n && visited[x-3][y]==false){
            visited[x-3][y]=true;
            q.push(make_pair(x-2,y+1));
        }
        if(x>1 && y<n-1 && visited[x-2][y+1]==false){
            visited[x-2][y+1]=true;
            q.push(make_pair(x-1,y+2));
        }
        if(x<n && y<n-1 && visited[x][y+1]==false){
            visited[x][y+1]=true;
            q.push(make_pair(x+1,y+2));
        }
        if(x<n-1 && y<n && visited[x+1][y]==false){
            visited[x+1][y]=true;
            q.push(make_pair(x+2,y+1));
        }
        if(x<n-1 && y>1 && visited[x+1][y-2]==false){
            visited[x+1][y-2]=true;
            q.push(make_pair(x+2,y-1));
        }
        if(x<n && y>2 && visited[x][y-3]==false){
            visited[x][y-3]=true;
            q.push(make_pair(x+1,y-2));
        }
        if(x>1 && y>2 && visited[x-2][y-3]==false){
            visited[x-2][y-3]=true;
            q.push(make_pair(x-1,y-2));
        }
        q.pop();
    }
}
int main()
{
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        int x,y,X,Y;
        cin>>x>>y>>X>>Y;
        int count=0;
        bool visited[20][20]={false};
        bfs(visited,n,x,y,X,Y,count);
        cout<<count<<'\n';
    }
	return 0;
}

All Articles