/
contagem-repetida-de-numeros.js
43 lines (31 loc) · 1.18 KB
/
contagem-repetida-de-numeros.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Contagem repetida de números
/* Neste desafio sua tarefa será ler vários números e em seguida dizer quantas
vezes cada número aparece, ou seja, deve-se escrever cada um dos valores
distintos que aparecem na entrada por ordem crescente de valor.
- Entrada
A primeira linha de entrada contem um único inteiro N, que indica a quantidade
de valores que serão lidos para X (1 ≤ N ≤ 2000) logo em seguida. Com certeza
cada número não aparecerá mais do que 20 vezes na entrada de dados.
- Saída
Imprima a saída de acordo com o exemplo fornecido abaixo, indicando quantas
vezes cada um deles aparece na entrada por ordem crescente de valor. */
const nCases = parseInt(gets());
let input = 0
let numbers = []
for (let i = 1; i <= nCases; i++) {
input = parseInt(gets());
if ((input < 1 || input > 2000)) {
continue;
}
numbers = [...numbers, input];
}
const distinctNumbers = Array.from(new Set(numbers))
.sort((a, b) => a - b)
.map(v => ([v, 0]))
let countNumberMap = new Map(distinctNumbers)
numbers.forEach(n => {
countNumberMap.set(n, countNumberMap.get(n) + 1)
})
for (const [number, times] of countNumberMap) {
console.log(`${number} aparece ${times} vez(es)`)
}