Publicado el 12 Mar 2020

En este artículo, estaremos discutiendo algunas de las preguntas importantes de Hackerrank y los desafíos que se piden en varios reclutamientos de la compañía de productos. Si usted es alguien interesado en la programación, entonces esta lista de preguntas importantes de Hackerrank es una necesidad para resolver.

Preguntas de Hackerrank con soluciones

Aquí hay algunas preguntas de Hackerrank más preguntadas con soluciones.

  • Número de islas usando DFS
  • Problema de la suma de subconjuntos
  • Problema de la rata en un laberinto
  • Número de formas de llegar a la enésima escalera
  • Problema del sudoku
  • Girar la matriz por K veces
  • 0-.1 Problema de la mochila
  • Detectar un bucle en una lista enlazada
  • Corchetes redundantes
  • Comprobador de paréntesis equilibrados
  • Mediana de dos matrices ordenadas

Pregunta 1:

Preguntas de ejemplo de Hackerrank: Comparación de bancos

Hay dos bancos; el Banco A y el Banco B. Sus tipos de interés varían. Has recibido ofertas de ambos bancos en cuanto al tipo de interés anual, el plazo y las variaciones del tipo de interés a lo largo de todo el plazo.

Tienes que elegir la oferta que te cueste menos intereses y rechazar la otra. Haz el cálculo y elige sabiamente.

La devolución del préstamo se realiza con una frecuencia mensual y la cuota mensual equivalente (EMI) se calcula con la fórmula que se indica a continuación:

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

Constraints:

1 <= P <= 1000000

1 <=T <= 50

1<= N1 <= 30

1<= N2 <= 30

Formato de entrada:

  • Primera línea : P – principal (Importe del préstamo)
  • Segunda línea : T – Tenencia total (en años).
  • Tercera línea: N1 es el número de tablas de tipos de interés para un período determinado por el Banco A. La primera tabla comienza desde el primer año y la segunda tabla comienza desde el final de la primera tabla y así sucesivamente.
  • La siguiente línea N1 contendrá el tipo de interés y su período.
  • Después de las líneas N1 recibiremos N2, es decir, el número de tablas ofrecidas por el segundo banco.
  • Las siguientes N2 líneas son el número de tablas de tipos de interés para un periodo determinado por el Banco B. La primera tabla comienza desde el primer año y la segunda tabla comienza desde el final de la primera tabla y así sucesivamente.
  • El periodo y el tipo estarán delimitados por un solo espacio en blanco.

Formato de salida: Su decisión: banco A o banco B.

Explicación:

Muestra de entrada 1:

100002035 9.510 9.65 8.5310 6.95 8.55 7.9

Muestra de salida 1:

Bank B

Muestra de entrada 2:

50000026313 9.53 6.910 5.6314 8.56 7.46 9.6

Muestra de salida 2:

Bank A

Solución:

#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;}

Muestras de preguntas de Hackerrank: One Egg

«One Egg» es una empresa de suministro de huevos que suministra huevos a los minoristas. Tienen M clases de huevos. Cada clase puede tener N número de huevos (N puede ser el mismo o puede variar de una clase a otra). Aceptan pedidos por correo de X huevos. En respuesta, confirman si pueden suministrar los huevos con una nota de «Gracias» y el número de huevos o con una nota de «Lo siento» y el número de huevos que pueden suministrar. También mencionan el desglose de los huevos por clase que van a suministrar. Los huevos solicitados se ajustan a las diferentes clases, ajustando primero el mayor número de huevos, luego el resto a la segunda clase y así sucesivamente. La empresa también es un poco supersticiosa. Si el número de huevos pedidos es mayor o igual que el número total de huevos en stock, entonces retienen un huevo y responden con la nota «Lo siento» con el número total de huevos en stock menos uno y el desglose de los huevos por clase.

Nota: Si las clases tienen el mismo número de huevos entonces la clase ingresada primero debe ser seleccionada para ajustar.

Formato de entrada:

La primera línea contiene dos enteros separados por espacios que denotan los valores respectivos de M (el número de clases de huevos) y X, el número de huevos ordenados Las siguientes M líneas contienen un entero cada una que indica el número de huevos disponibles en cada clase

Formato de salida:

La primera línea debe ser, si X es menor que el número total de Huevos entonces Imprime » Gracias, su pedido de X huevos es aceptado» Si no, si X es mayor o igual que el número total de Huevos entonces imprime » » Lo sentimos, sólo podemos suministrar (número total de Huevos en stock -1) huevos» T hen M líneas con 3 columnas: Primera columna – Número de huevos disponibles en cada clase Segunda columna – Huevos asignados contra cada clase para ese pedido Tercera columna – Saldo de Huevos contra cada clase

Restricciones:

1 ≤ M ≤ 20 N ≥ 1 X ≥ 1

Muestra de entrada 1:

5 150 50 15 80 10 5 

Muestra de salida 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 

Explicación:

El pedido total de 150 huevos es menor que el número total de Huevos 50+15+80+10+5 = 160. De ahí el mensaje de agradecimiento. 150 fue ajustado primero contra la Clase con el primer número más alto de huevos 80. El saldo de 150-80 = 70 se ajustó contra la segunda clase más alta de 50. El saldo de 70-50 = 20 se ajustó contra 15. Saldo de 20-15 = 5 entonces ajustado contra 10 dejando 5 huevos en esa clase.

Muestra de entrada 2:

4 250 80 50 70 20 

Muestra de salida 2:

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

Explicación:

El pedido total de 250 huevos era mayor que el número total de huevos 80+50+70+20 = 220. De ahí el mensaje de disculpa. 250 fue ajustado primero contra la clase con el primer número más alto de huevos 80. El saldo de 250-80 = 170 se ajustó contra la segunda clase más alta de 70. El saldo de 170-70 = 100 se ajustó entonces contra 50. El saldo de 100-50 = 50 se ajustó entonces contra 20. Como el saldo es mayor que la última clase de huevos, todos los huevos menos uno quedan en esa última clase.

Solución:

#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;}

Pregunta 3:

Preguntas de ejemplo de Hackerrank: El lechero y sus botellas

Un lechero sirve leche en botellas envasadas de tamaños variados. Los tamaños posibles de las botellas son {1, 5, 7 y 10} litros. Quiere suministrar la cantidad deseada utilizando el menor número de botellas posible, independientemente del tamaño. Su objetivo es ayudarle a encontrar el mínimo número de botellas necesarias para suministrar la demanda de leche dada.

Formato de entrada:

  • La primera línea contiene el número de casos de prueba N
  • Las siguientes N líneas, contienen cada una un entero positivo Li que corresponde a la demanda de leche.

Formato de salida:

Para cada entrada Li, imprime el número mínimo de botellas necesarias para satisfacer la demanda

Restricciones:

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

Muestra de entrada y salida:

2 7

Explicación:

El número de casos de prueba es 2

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

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

Algunos ejemplos más:

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

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

Solución:

#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;}

Pregunta 4:

Preguntas de ejemplo de Hackerrank: La caza de la novia

Sam es un soltero elegible. Decide establecerse en la vida y formar una familia. Va a la caza de la novia. Quiere casarse con una chica que tenga al menos una de las 8 cualidades que se mencionan a continuación:-

1) La chica debe ser rica.

2) La chica debe ser Ingeniero/Médico.

3) La chica debe ser hermosa.

4) La chica debe medir 5,3″.

5) La chica debe trabajar en una multinacional.

6) La chica debe ser extrovertida.

7) La chica no debe tener gafas.

8) La chica debe ser amable y honesta.

Está en busca de una novia que tenga algunas o todas las 8 cualidades mencionadas anteriormente. En la búsqueda de la novia, puede encontrar más de una contendiente para ser su esposa.

En ese caso, quiere elegir una chica cuya casa esté más cerca de la suya. Busca una novia para Sam que tenga las máximas cualidades. Si en el caso, hay más de una contendiente que están a igual distancia de la casa de Sam; entonces

imprime «»Poligamia no permitida»».

En caso de que no haya ninguna chica adecuada que se ajuste a los criterios entonces imprime «»No se ha encontrado ninguna chica adecuada»»

Dada una matriz N*M, la casa de Sam está en (1, 1). Se denota por 1. En la misma matriz, la ubicación de una chica casable también se denota por 1. Por lo tanto, 1 en la ubicación (1, 1) no debe considerarse como la ubicación de una chica casable.

Las cualidades de esa chica, según el criterio de Sam, tienen que ser decodificadas a partir del número de vecinos distintos de cero (máximo 8) que tiene. Al igual que la condición anterior, 1 en la ubicación (1, 1) no debe ser considerado como la calidad de una chica. Vea la sección Ejemplo para obtener una mejor comprensión.

Encuentre a Sam, una Novia adecuada e imprima la fila y la columna de la novia, y encuentre el número de cualidades que la Novia posee.

NOTA: La distancia se calcula en número de saltos en cualquier dirección es decir. (Izquierda, Derecha, Arriba, Abajo y Diagonal)

Restricciones:

2 <= N,M <= 10^2

Formato de entrada:

  • La primera línea contiene la fila (N) y la columna (M) de las casas.
  • Las siguientes N líneas contienen los datos de las chicas y sus cualidades.

Formato de salida:

Contiene la fila y la columna de la novia, y el número de cualidades que posee la novia separadas por dos puntos (es decir :).

Muestra de entrada 1:

2 9

1 0 1 0 1 1 1

0 0 1 0 1 0

Muestra de salida 1:

Explicación:

La chica y las cualidades están presentes en (1,3),(1,4),(1,6),(1,7),(1,8),(1,9),(2,4),(2,6),(2,9).

La chica presente en (1,3) tiene 2 cualidades (es decir, (1,4)y (2,4)).

La chica presente en (1,4) tiene 2 cualidades.

La novia presente en (1,6) tiene 2 cualidades.

La novia presente en (1,7) tiene 3 cualidades.

La novia presente en (1,8) tiene 3 cualidades.

La novia presente en (1,9) tiene 2 cualidades.

La novia presente en (2,4) tiene 2 cualidades.

La novia presente en (2,6) tiene 2 cualidades.

La novia presente en (2,9) tiene 2 cualidades.

Como vemos, hay dos aspirantes que tienen el máximo de cualidades, una está en (1,7) y otra en (1,8).

La chica que está más cerca de la casa de Sam está en (1,7). Por lo tanto, ella es la novia.

Por lo tanto, la salida será 1:7:3.

Muestra de entrada 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 0

0 0 0 0

Muestra de salida 2:

Explicación:

La novia y las cualidades están presentes en (3,3),(3,4),(3,5),(4,3),(4,4),(4,5),(5,3),(5,4),(5,5)

La novia presente en (3,3) tiene 3 cualidades (i.es decir (3,4),(4,3) y (4,4)).

La Novia presente en (3,4) tiene 5 cualidades.

La Novia presente en (3,5) tiene 3 cualidades.

La novia presente en (4,3) tiene 5 cualidades.

La novia presente en (4,4) tiene 8 cualidades.

La novia presente en (4,5) tiene 5 cualidades.

La Novia presente en (5,3) tiene 3 cualidades.

La Novia presente en (5,4) tiene 5 cualidades.

La Novia presente en (5,5) tiene 3 cualidades.

Como vemos, la chica presente en (4,4) tiene el máximo número de Cualidades. Por lo tanto, ella es la novia.

Por lo tanto, la salida será 4:4:8.

Solución:

#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;}

También puedes comprobar esto:

  • Preguntas sobre estructuras de datos &Preguntas sobre algoritmos
  • Preguntas sobre programación en C
Si tienes algún comentario sobre este artículo y quieres mejorarlo, escribe a [email protected]

Deja una respuesta

Tu dirección de correo electrónico no será publicada.