Publié le 12 Mar 2020

Dans cet article, nous allons discuter de certaines des questions et des défis Hackerrank importants demandés dans les recrutements de diverses entreprises de produits. Si vous êtes quelqu’un d’intéressé par la programmation, alors cette liste de questions importantes de Hackerrank est un must à résoudre.

Questions de Hackerrank avec solutions

Voici quelques questions de Hackerrank les plus posées avec des solutions.

  • Nombre d’îles en utilisant DFS
  • Problème de la somme des sous-ensembles
  • Problème du rat dans un labyrinthe
  • Nombre de façons d’atteindre le nième escalier
  • Problème du sudoku
  • Rotation de la matrice par K fois
  • 0-.1 Problème de sac à dos
  • Détecter une boucle dans une liste chaînée
  • Accolades redondantes
  • Vérificateur de parenthèses équilibrées
  • Médiane de deux tableaux triés

Question 1 :

Exemple de questions Hackerrank : Comparaison de banques

Il y a deux banques ; la banque A et la banque B. Leurs taux d’intérêt varient. Vous avez reçu des offres des deux banques en termes de taux d’intérêt annuel, de durée et de variations du taux d’intérêt sur toute la durée.

Vous devez choisir l’offre qui vous coûte le moins d’intérêt et rejeter l’autre. Faites le calcul et faites un choix judicieux.

Le remboursement du prêt se fait à une fréquence mensuelle et l’Equated Monthly Installment (EMI) est calculé en utilisant la formule donnée ci-dessous :

EMI = loanAmount * monthlyInterestRate / ( 1 – 1 / (1 + monthlyInterestRate)^(numberOfYears * 12))

Contraintes :

1 <= P <= 1000000

1 <=T <= 50

.

1<= N1 <= 30

1<= N2 <= 30

Format d’entrée :

  • Première ligne : P – principal (montant du prêt)
  • Deuxième ligne : T – Tenure totale (en années).
  • Troisième ligne : N1 est le nombre de tranches de taux d’intérêt pour une période donnée par la banque A. La première tranche commence à partir de la première année et la deuxième tranche commence à la fin de la première tranche et ainsi de suite.
  • La prochaine ligne N1 contiendra le taux d’intérêt et leur période.
  • Après N1 lignes, nous recevrons N2 c’est-à-dire le nombre de tranches offertes par la deuxième banque.
  • Après N2 lignes, on recevra le nombre de tranches de taux d’intérêt pour une période donnée par la banque B. La première tranche commence à partir de la première année et la deuxième tranche commence à la fin de la première tranche et ainsi de suite.
  • La période et le taux seront délimités par un seul espace blanc.

Format de sortie : Votre décision – soit la banque A, soit la banque B.

Explication:

Échantillon d’entrée 1 :

100002035 9.510 9.65 8.5310 6.95 8.55 7.9

Sortie échantillon 1:

Bank B

Sortie échantillon 2 :

50000026313 9.53 6.910 5.6314 8.56 7.46 9.6

Sortie échantillon 2:

Bank A

Solution :

#include <stdio.h>#include<math.h>int main() { double p,s,mi,sum,emi,bank,sq; int y,n,k,i,yrs,l=0; scanf("%lf",&p); scanf("%d",&y); for(k=0;k<2;k++) { scanf("%d",&n); sum=0; for(i=0;i<n;i++) { scanf("%d",&yrs); scanf("%lf",&s); mi=0; sq=pow((1+s),yrs*12); emi= (p*(s))/(1-1/sq); sum= sum + emi; } bank=sum; } if(bank<bank) printf("Bank A"); else printf("Bank B"); return 0;}

Échantillon de questions Hackerrank : One Egg

« One Egg » est une entreprise d’approvisionnement en œufs qui fournit des œufs aux détaillants. Ils ont M catégories d’œufs. Chaque classe peut avoir N nombre d’œufs (N peut être le même ou peut varier d’une classe à l’autre). Elle accepte une commande par courrier pour X œufs. En réponse, ils confirment s’ils peuvent fournir les œufs avec une note « Merci » et le nombre d’œufs ou avec une note « Désolé » et le nombre d’œufs qu’ils peuvent fournir. Ils mentionnent également la répartition des œufs par classe qu’ils fourniront. Les œufs commandés sont ajustés en fonction des différentes catégories, le plus grand nombre d’œufs étant ajusté en premier, puis le solde est ajusté en fonction de la deuxième catégorie la plus élevée, et ainsi de suite. L’entreprise est également un peu superstitieuse. Si le nombre d’œufs commandés est supérieur ou égal au nombre total d’œufs en stock alors ils retiennent un œuf et répondent en retour avec la note « Désolé » avec le nombre total d’œufs en stock moins un et la répartition des œufs par classe.

Note : Si les classes ont le même nombre d’œufs alors la classe entrée en premier doit être sélectionnée pour s’ajuster.

Format d’entrée :

La première ligne contient deux entiers séparés par des espaces désignant les valeurs respectives de M (le nombre de classes d’œufs) et de X, le nombre d’œufs commandés Les M lignes suivantes contiennent chacune un entier indiquant le nombre d’œufs disponibles dans chaque classe

Format de sortie :

La première ligne doit être, si X est inférieur au nombre total d’œufs alors Imprimer  » Merci, votre commande de X œufs est acceptée  » Else si X est supérieur ou égal au nombre total d’œufs alors imprimer  »  » Désolé, nous ne pouvons fournir que (nombre total d’œufs en stock -1) œufs  » T hen M lignes avec 3 colonnes : Première colonne – Nombre d’œufs disponibles dans chaque classe Deuxième colonne – Œufs alloués contre chaque classe pour cette commande Troisième colonne – Solde des œufs contre chaque classe

Contraintes:

1 ≤ M ≤ 20 N ≥ 1 X ≥ 1

Échantillon d’entrée 1 :

5 150 50 15 80 10 5 

Exemple de sortie 1:

Thank you, your order for 150 eggs are accepted 50 50 0 15 15 0 80 80 0 10 5 5 5 0 5 

Explication :

La commande totale de 150 œufs est inférieure au nombre total d’œufs 50+15+80+10+5 = 160. D’où le message de remerciement. 150 a d’abord été ajusté contre la classe avec le premier plus grand nombre d’œufs 80. Le solde de 150-80 = 70 a été ajusté contre la deuxième classe la plus élevée de 50. Le solde de 70-50 = 20 a ensuite été ajusté par rapport à 15. Solde de 20-15 = 5 puis ajusté contre 10 laissant derrière lui 5 œufs dans cette classe.

Échantillon d’entrée 2:

4 250 80 50 70 20 

Échantillon de sortie 2 :

Sorry, we can only supply 219 eggs 80 80 0 50 50 0 70 70 0 20 19 1 

Explication:

La commande totale de 250 œufs était supérieure au nombre total d’œufs 80+50+70+20 = 220. D’où le message de désolation. 250 a d’abord été ajusté contre la classe ayant le premier plus grand nombre d’œufs 80. Le solde de 250-80 = 170 a été ajusté par rapport à la deuxième classe la plus élevée de 70. Le solde de 170-70 = 100 a ensuite été ajusté par rapport à 50. Le solde de 100-50 = 50 a ensuite été ajusté par rapport à 20. Comme le solde est supérieur à la dernière classe d’œufs, il reste tous les œufs sauf un dans cette dernière classe.

Solution:

#include <stdio.h>int main() {int m,x,i,a,sum=0,s;scanf("%d %d",&m,&x);for(i=0;i<m;i++){scanf("%d",&a);sum=sum+a;}if(sum>x) printf("Thank you, your order for %d eggs are accepted\n",x);else{ printf("Sorry, we can only supply %d eggs\n",sum-1); x=sum-1;}for(i=0;i<m;i++){ if(x>=a) { printf("%d\t%d\t%d\n",a,a,0); x=x-a; } else if(x<a) { s=a-x; printf("%d\t%d\t%d\n",a,x,s); x=0; } else if(x==0) printf("%d\t%d\t%d\n",a,0,a); } return 0;}

Question 3:

Exemple de questions Hackerrank : Le laitier et ses bouteilles

Un laitier sert du lait dans des bouteilles emballées de tailles variées. Les tailles possibles des bouteilles sont {1, 5, 7 et 10} litres. Il veut fournir la quantité désirée en utilisant le moins de bouteilles possible, quelle que soit leur taille. Votre objectif est de l’aider à trouver le nombre minimum de bouteilles nécessaires pour fournir la demande de lait donnée.

Format d’entrée:

  • La première ligne contient le nombre de cas de test N
  • Les N lignes suivantes, chacune contient un entier positif Li qui correspond à la demande de lait.

Format de sortie:

Pour chaque entrée Li, imprimez le nombre minimum de bouteilles nécessaires pour satisfaire la demande

Contraintes :

1 <= N <= 1000 Li > 0 1 <= i <= N

Echantillon d’entrée et de sortie:

2 7

Explication :

Le nombre de cas de test est de 2

Pour 17 = 10*1 + 7*1 = 2

Pour 65 = 10*6 + 5*1 = 7

Plusieurs exemples :

Pour 99 = 10*9 + 7*1 + 1*2 = 12

Pour 63 = 10*6 + 1*3 =9

Solution :

#include <stdio.h>int main(){ int n,b=0,i,m,s=0; scanf("%d",&m); for( i=0;i<m;i++) { scanf("%d",&n); b=n/10; n=n%10; s=s+b; b=0; b=n/7; n=n%7; s=s+b; b=0; b=n/5; n=n%5; s=s+b; b=0; b=n/1; s=s+b; printf("%d\n",s); s=0; b=0; } return 0;}

Question 4:

Exemple de questions Hackerrank : La chasse aux mariées

Sam est un célibataire admissible. Il décide de s’installer dans la vie et de fonder une famille. Il part à la chasse à la mariée. Il veut épouser une fille qui a au moins une des 8 qualités mentionnées ci-dessous :-

1) La fille doit être riche.

2) La fille doit être ingénieur/docteur.

3) La fille doit être belle.

4) La fille doit mesurer 5,3″.

5) La fille doit travailler dans un MNC.

6) La fille doit être extravertie.

7) La fille ne doit pas avoir de lunettes.

8) La fille doit être gentille et honnête.

Il est à la recherche d’une mariée qui possède tout ou partie des 8 qualités mentionnées ci-dessus. En cherchant une épouse, il peut trouver plus d’une prétendante pour être sa femme.

Dans ce cas, il veut choisir une fille dont la maison est la plus proche de la sienne. Trouver une fiancée pour Sam qui a le maximum de qualités. Si dans le cas, il y a plus d’une prétendante qui sont à égale distance de la maison de Sam’ ; alors

print «  »Polygamie non autorisée » ».

Dans le cas où aucune fille convenable ne répond aux critères, alors imprimez «  »Aucune fille convenable trouvée » »

Donné une matrice N*M, la maison de Sam est à (1, 1). Elle est notée 1. Dans la même matrice, l’emplacement d’une Fille mariable est également noté 1. Par conséquent, 1 à l’emplacement (1, 1) ne doit pas être considéré comme l’emplacement d’une Fille mariable.

Les qualités de cette fille, selon les critères de Sam’, doivent être décodées à partir du nombre de voisins non nuls (max 8 voies) qu’elle a. De manière similaire à la condition ci-dessus, 1 à l’emplacement (1, 1) ne doit pas être considéré comme la qualité d’une fille. Voir la section Exemple pour mieux comprendre.

Trouver Sam, une Épouse convenable et imprimer la ligne et la colonne de l’Épouse, et trouver le nombre de qualités que l’Épouse possède.

NOTE : La distance est calculée en nombre de sauts dans n’importe quelle direction c’est-à-dire. (Gauche, Droite, Haut, Bas et Diagonale)

Contraintes:

2 <= N,M <= 10^2

Format d’entrée :

  • La première ligne contient la ligne (N) et la colonne (M) des maisons.
  • Les N lignes suivantes contiennent les données sur les filles et leurs qualités.

Format de sortie:

Il contiendra la ligne et la colonne de la mariée, et le nombre de qualités que la mariée possède séparées par deux points (c’est-à-dire :).

Exemple d’entrée 1:

2 9

1 0 1 1 0 1 1 1

0 0 0 1 0 1 0 0 1

Exemple de sortie 1 :

Explication:

La fille et les qualités sont présentes à (1,3),(1,4),(1,6),(1,7),(1,8),(1,9),(2,4),(2,6),(2,9).

La fille présente à (1,3) a 2 qualités (c’est-à-dire (1,4)et (2,4)).

La fille présente à (1,4) a 2 qualités.

La mariée présente à (1,6) a 2 qualités.

La jeune mariée présente à (1,7) a 3 qualités.

La jeune mariée présente à (1,8) a 3 qualités.

La jeune mariée présente à (1,9) a 2 qualités.

La jeune mariée présente à (2,4) a 2 qualités.

La jeune mariée présente à (2,6) a 2 qualités.

La mariée présente à (2,9) a 2 qualités.

Comme nous le voyons, il y a deux prétendants qui ont le maximum de qualités, l’un est à (1,7) et l’autre à (1,8).

La fille qui est la plus proche de la maison de Sam est à (1,7). Par conséquent, elle est la fiancée.

Donc, le résultat sera 1:7:3.

Exemple d’entrée 2 :

6 6

1 0 0 0 0 0

0 0 0 0 0 0

0 0 1 1 1 0

0 0 1 1 1 0

0 0 1 1 1 0

0 0 0 0 0

Échantillon de sortie 2 :

Explication :

La mariée et les qualités sont présentes à (3,3),(3,4),(3,5),(4,3),(4,4),(4,5),(5,3),(5,4),(5,5)

La mariée présente à (3,3) a 3 qualités (soit.c’est-à-dire (3,4),(4,3) et (4,4)).

La Mariée présente à (3,4) a 5 qualités.

La Mariée présente à (3,5) a 3 qualités.

La Mariée présente à (4,3) a 5 qualités.

La Mariée présente à (4,4) a 8 qualités.

La Mariée présente à (4,5) a 5 qualités.

La mariée présente en (5,3) a 3 qualités.

La mariée présente en (5,4) a 5 qualités.

La mariée présente en (5,5) a 3 qualités.

Comme on le voit, la fille présente en (4,4) a le maximum de Qualités. Par conséquent, elle est la mariée.

Donc, le résultat sera 4:4:8.

Solution:

#include<stdio.h>int main(){ int n,m,i,g,j,p,q,max=0,cnt=0,k=1,c=0,u=1,x,y,t1,min=0, sc,e,f,ct=0,a,count=0,t2=0,t=0; scanf("%d %d",&n,&m); for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { scanf("%d",&g); } } g=0; for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { cnt=0; if(g==1) { t++; for(p=i-1;p<=i+1;p++) { for(q=j-1;q<=j+1;q++) { if(g==1) { cnt++; } } }cnt=cnt-1; a=cnt; k++; } } } for(k=1;k<=t;k++) { if(a>max) max=a; } if(max==0) { printf("No suitable girl found"); return 0; } for(k=1;k<=t;k++) { if(a==max) c++; } for(k=1;k<=t;k++) { t2=0; if(a==max) { for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { if(g==1) t2++; if(t2==k) { x=i; y=j; u++; } } } } } t1=u-1; if(c==1) printf("%d:%d:%d",x,y,max); else { for(u=1;u<=t1;u++) { sc=sqrt(((x-1) * (x-1)) + ((y-1)*(y-1)));; } min=sc; for(u=1;u<=t1;u++) { if(sc<min) min=sc; } for(u=1;u<=t1;u++) { if(sc==min) count++; } if(count>1) printf("Polygamy not allowed"); if(count==1) { for(u=1;u<=t1;u++) { if(sc==min) printf("%d:%d:%d",x,y,max); } } } return 0;}

Vous pouvez aussi vérifier celles-ci :

  • Doit pratiquer les structures de données & Questions sur les algorithmes
  • Doit pratiquer les questions de programmation en C
Si vous avez des commentaires sur cet article et que vous voulez l’améliorer, écrivez à [email protected]

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.