Gráficos ASCII (Parte 2: Gráfico de barras)

Dado um hash contendo os valores de vendas trimestrais de um ano, retorne uma string que represente um gráfico de barras das vendas por trimestre.

  • Os nomes dos trimestres (Q1, Q2, Q3, Q4) devem aparecer à esquerda.
  • Os trimestres devem ser ordenados por valor decrescente.
  • Os trimestres com o mesmo valor devem ser exibidos na ordem anual (Q1 -> Q4).
  • As barras devem começar com um "|".
  • Repita o caractere "#" para preencher a barra, sendo que cada caractere tem um valor de 50.
  • Depois da barra vem um único espaço e, em seguida, as vendas daquele trimestre.
  • Se o valor for 0, não deve haver espaço depois de "|".
  • Use o caractere de nova linha ("\n") para separar cada barra no gráfico.

Exemplo #1

bar_chart({"Q4" => 250, "Q1" => 300, "Q2" => 150, "Q3" => 0})
➞ "Q1|###### 300\nQ4|##### 250\nQ2|### 150\nQ3|0"

Quando impresso:

Q1|###### 300
Q4|##### 250
Q2|### 150
Q3|0

Exemplo #2

bar_chart({"Q4" => 500, "Q3" => 100, "Q2" => 100, "Q1" => 150})
➞ "Q4|########## 500\nQ1|### 150\nQ2|## 100\nQ3|## 100"

Quando impresso:

Q4|########## 500
Q1|### 150
Q2|## 100
Q3|## 100

Observações

Não deve haver espaços em branco adicionais depois de cada valor.