DEV Community

Altencir Junior
Altencir Junior

Posted on

Resolvendo problemas no HackerRank: Analisando o orçamento.

Olá, seja bem vindo a mais uma etapa do Resolvendo problemas no Hacker-Rank,nessa sessão iremos analisar alguns produtos e ver por meio do orçamento fornecido, podemos comprá-los. Vejamos como separar isso.

Eletronics Shop -

Nosso problema está em uma loja de eletrônicos. Queremos comprar: um Keyboard(teclado) e um USB Drive(pen drive), entretanto temos um orçamento pré limitado e existem diferentes valores para cada um dos dois produtos.

O objetivo é que caso a compra passe do valor de orçamento, seja devolvido um input -1. Caso não passe, devemos pegar a maior possibilidade dentro do orçamento permitido.

  • int keyboards[n]: os preços dos teclados.
  • int drives[m]: os preços dos drives.
  • int b: o orçamento geral para compras.
  • Return int: o máximo que pode ser gasto, ou caso não seja possível comprar os dois itens, -1

Vejamos um exemplo para máxima compreensão.

b = 60
keyboard = [50,40,60]
drives = [5,8,12]

Podemos comprar um keyboard [40] e um drives de [12], ou um keyboard[50] e um drives de [8]. Caso seja keyboard de [60], retornará -1, pois menos um produto pode ser levado visto que chegamos a nosso orçamento limite.

Vejamos a resolução:

function getMoneySpent(keyboard,drives, b){

let maximumValue = -1;

  for (let keyboardOptions of keyboard){
  for (let drivesOption of drives){

const finalValue = keyboardOptions + drivesOption;

if(finalValue <= b && finalValue > maximumValue){ maximumValue = finalValue }

}
}

return maximumValue
}
Enter fullscreen mode Exit fullscreen mode

O input de resultado desse caso será:

10 2 3 // orçamento,modelos de keyboard,modelos de drives

3 1 //Keyboards: primeiro preço, segundo preço
5 2 8 // Drives: primeiro,segundo e terceiro preço

input de resultado: 9
Enter fullscreen mode Exit fullscreen mode

Temos também outro input fornecido de resultado, onde nos é fornecido o valor -1:

5 1 1 // orçamento,modelos de keyboard,modelos de drives
4 //Keyboards:preço
5 // Drives:preço

input de resultado: -1
Enter fullscreen mode Exit fullscreen mode

Mais uma vez, finalizamos o problema de hoje, até a próxima resolução da série: Resolvendo problemas no HackerRank

Top comments (0)