Desafio - Fila do Banco - Ordenação e Filtros em JavaScript

 

O banco que você trabalha sempre tem problemas para organizar as filas de atendimento dos clientes.
Após uma reunião com a gerência ficou decidido que os clientes ao chegar na agência receberão uma senha numérica em seu aparelho de celular via sms e que a ordem da fila será dada não pela ordem de chegada, mas sim pelo número recebido via sms.
Sendo, aqueles com número maior deverão ser atendidos primeiro.
Então, dada a ordem de chegada dos clientes reordene a fila de acordo com o número recebido via sms, e diga quantos clientes não precisaram trocar de lugar nessa reordenação.

//### Entrada
A primeira linha contém um inteiro N, indicando o número de casos de teste a seguir.
Cada caso de teste inicia com um inteiro M (1 ≤ M ≤ 1000), indicando o número de clientes.
Em seguida haverá M inteiros distintos Pi (1 ≤ Pi ≤ 1000), onde o i-ésimo inteiro indica o número recebido via sms do i-ésimo cliente.
Os inteiros acima são dados em ordem de chegada, ou seja, o primeiro inteiro diz respeito ao primeiro cliente a chegar na fila, o segundo inteiro diz respeito ao segundo cliente, e assim sucessivamente.

//### Saída
Para cada caso de teste imprima uma linha, contendo um inteiro, indicando o número de clientes que não precisaram trocar de lugar mesmo após a fila ser reordenada.
|---------------------------------------|
| Exemplo de Entrada | Exemplo de Saída |
|--------------------|------------------|
| 3 | 1 |
| 3 | 0 |
| 100 80 90 | 4 |
| 4 | |
| 100 120 30 50 | |
| 4 | |
| 100 90 30 25 | |
|---------------------------------------|
*/

//Código do desafio:
const inputs = [ //para uso local
'3',
'3',
'100 80 90',
'4',
'100 120 30 50',
'4',
'100 90 30 ',
]//para uso local
let i = 0 //para uso local

// const nCasos = parseInt(gets()); //para uso na DIO
const nCasos = parseInt(inputs[i++]); //para uso local
let nClientes = [];
let senhas = [];

for (let n = 0; n < nCasos; n++) {
// nClientes[n] = parseInt(gets()); //para uso na DIO
nClientes[n] = parseInt(inputs[i++]);

// senhas[n] = gets().split(' '); //para uso na DIO
senhas[n] = inputs[i++].split(' '); //para uso local

let senhasOrdenadas = Array.from(senhas[n]).sort((a, b) => b - a);

let contadorSemTroca = 0;
for (let i = 0; i < senhas[n].length; i++) {
senhas[n][i] === senhasOrdenadas[i] && (contadorSemTroca++);
}
console.log(contadorSemTroca);
}
//### Desafio - Fila do Banco

faço trabalhos avulsos de programação em php , javascript , html , VBA-EXCEL e EXCEL formulas avançadas . pode entrar em contato no whatsapp 83988596239. nós combinaremos os valores de acordo com a demanda.

Nenhum comentário:

Postar um comentário

Programando com JS 2 / 5 - Resto 2

  Desafio Leia um valor inteiro N . Apresente todos os números entre 1 e 10000 que divididos por N dão resto igual a 2. Entrada A ...