Voltar para os desafios
Fácil 0 resolvidos 0% de aceitação

Total do Carrinho com Desconto

Some os valores de um carrinho de compras e aplique um desconto acima de um limite.

O que você vai aprender

  • Somar preços com quantidades
  • Aplicar um desconto acima de um limite
  • Organizar o código em funções auxiliares

Problema

Ver original (inglês)

Some os preços no carrinho. Se o total for pelo menos discount_threshold, aplique discount_percent por cento de desconto sobre o total.

Implemente cart_total(prices, discount_threshold, discount_percent).

Entrada

prices: Os preços dos itens. discount_threshold: O total que libera o desconto. discount_percent: O desconto em porcentagem.

Saída

Retorne o valor a ser pago.

Restrições

0 ≤ comprimento ≤ 1.000; 0 ≤ cada preço ≤ 100.000; 0 ≤ discount_percent ≤ 100

Exemplos

Exemplo 1
Entrada:
prices = [40, 35, 25]
discount_percent = 10
discount_threshold = 100

Saída esperada:
expected = 90.0
Entrada:
std::vector<long long> prices = {40, 35, 25};
long long discount_percent = 10;
long long discount_threshold = 100;

Saída esperada:
double expected = 90.0;
Entrada:
long[] prices = new long[] {40, 35, 25};
long discount_percent = 10;
long discount_threshold = 100;

Saída esperada:
double expected = 90.0;

Explicação

O total é 100, que atinge o limite, então 10% de desconto: 90.

Exemplo 2
Entrada:
prices = [20, 30]
discount_percent = 10
discount_threshold = 100

Saída esperada:
expected = 50.0
Entrada:
std::vector<long long> prices = {20, 30};
long long discount_percent = 10;
long long discount_threshold = 100;

Saída esperada:
double expected = 50.0;
Entrada:
long[] prices = new long[] {20, 30};
long discount_percent = 10;
long discount_threshold = 100;

Saída esperada:
double expected = 50.0;

Explicação

O total 50 está abaixo de 100, então sem desconto: 50.

Como abordar

Tente sozinho primeiro e depois abra uma dica de cada vez.

Dica 1

Primeiro encontre o total do carrinho antes de qualquer desconto.

Dica 2

Aplique a redução percentual só quando o total atingir o limite.

Dica 3

Garanta que o desconto seja sobre o pedido inteiro, não item por item.

Complexidade esperada

tempo O(n), espaço extra O(1)

Referências

Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.

Aprenda com outros

Soluções da comunidade

Ainda não há soluções publicadas. Resolva este desafio para compartilhar a primeira.