O Que Comprar
Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 88 de 88.
Desafio
FácilLeia uma lista de compras e o inventário da loja a partir da entrada, depois determine quais itens podem ser comprados.
Você receberá:
- Primeira linha: nomes de itens separados por vírgula representando sua lista de compras
- Segunda linha: o número de itens no inventário da loja
- Linhas seguintes: cada uma contém um nome de item e quantidade separados por uma vírgula
Por exemplo, a entrada de inventário apples,5 significa que a loja tem 5 maçãs em estoque.
Para cada item em sua lista de compras, imprima o nome do item seguido por - Yes se ele puder ser comprado, ou - No se não puder.
Um item pode ser comprado se:
- Ele existir no inventário da loja E
- Sua quantidade for maior que 0
Se um item não estiver no inventário de forma alguma, ou tiver uma quantidade de 0, imprima No.
Por exemplo, se as entradas forem:
apples,bread,milk
3
apples,5
bread,0
milk,3A saída deve ser:
apples - Yes
bread - No
milk - YesSe as entradas forem:
eggs,butter,cheese,yogurt
2
eggs,12
cheese,0A saída deve ser:
eggs - Yes
butter - No
cheese - No
yogurt - NoSe as entradas forem:
water
1
water,100A saída deve ser:
water - YesExperimente você mesmo
# Ler a lista de compras (itens separados por vírgula)
shopping_list = gets.chomp.split(',')
# Ler o número de itens no inventário
n = gets.to_i
# Ler o inventário da loja
inventory = {}
n.times do
line = gets.chomp.split(',')
item_name = line[0]
quantity = line[1].to_i
inventory[item_name] = quantity
end
# TODO: Escreva seu código abaixo
# Para cada item na lista de compras, verifique se ele pode ser comprado
# Um item pode ser comprado se ele existir no inventário E tiver quantidade > 0
# Imprima "item_name - Yes" ou "item_name - No" para cada itemTodas as lições de Fundamentos
4Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operadores Lógicos Parte 47Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoO Método FizzBuzz2Variáveis e Tipos de Dados
Números e VariáveisTipo de Dado StringTipo de Dado BooleanTipo de Dado SymbolVerificando Tipos de DadosConvenções de NomenclaturaRecapitulação - Criação de Variáveis5Tomada de Decisão
Instrução IfIf - ElseRecapitulação - Calculadora SimplesIf - Else AninhadoInstrução Unless8Laços de Repetição
Loop For com IntervalosLoop WhileBreakNextRecapitulação - FatorialLoop TimesLoop UntilLoops AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com putsSaída com print e pSaída com VariáveisEntrada com getsMétodo chompConversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Métodos
Definindo um MétodoParâmetros de MétodoValores de RetornoRecapitulação - Método SigmaRecapitulação - Método de ValidaçãoValores de Parâmetro Padrão15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa