//### Desafio - Uniformes de final de ano |
O professor Girafales organizou a confecção de um uniforme para as turmas da escola para comemorar o final do ano. |
Após algumas conversas, ficou decidido com os alunos que eles poderiam escolher a cor do uniforme entre branco ou vermelho. |
Assim sendo, Girafales precisa de sua ajuda para organizar as listas de quem quer o uniforme em cada uma das turmas, relacionando estas camisetas pela cor, tamanho (P, M ou G) e por último pelo nome. |
//### Entrada |
Cada caso de teste inicia com um valor N, (1 ≤ N ≤ 60) inteiro e positivo, que indica a quantidade de uniformes a serem feitas para aquela turma. |
As próximas N*2 linhas contém informações de cada um dos uniformes (serão duas linhas de informação para cada uniforme). |
A primeira linha irá conter o nome do estudante e a segunda linha irá conter a cor do uniforme ("branco" ou "vermelho") seguido por um espaço e pelo tamanho do uniforme "P" "M" ou "G". |
A entrada termina quando o valor de N for igual a zero (0) e esta valor não deverá ser processado. |
//### Saída |
Para cada caso de entrada deverão ser impressas as informações ordenadas pela cor em ordem ascendente, seguido pelos tamanhos em ordem descendente e por último por ordem ascendente de nome, conforme o exemplo abaixo. |
|----------------------------------------------------| |
| Exemplo de Entrada | Exemplo de Saída | |
|--------------------|-------------------------------| |
| 9 | branco P Cezar Torres Mo | |
| Maria Jose | branco P Maria Jose | |
| branco P | branco M JuJu Mentina | |
| Mangojata Mancuda | branco G Adabi Finho | |
| vermelho P | branco G Severina Rigudinha | |
| Cezar Torres Mo | vermelho P Amaro Dinha | |
| branco P | vermelho P Baka Lhau | |
| Baka Lhau | vermelho P Carlos Chade Losna | |
| vermelho P | vermelho P Mangojata Mancuda | |
| JuJu Mentina | | |
| branco M | | |
| Amaro Dinha | | |
| vermelho P | | |
| Adabi Finho | | |
| branco G | | |
| Severina Rigudinha | | |
| branco G | | |
| Carlos Chade Losna | | |
| vermelho P | | |
| 0 | | |
|----------------------------------------------------| |
*/ |
|
//Código do desafio: |
const inputs = [ //para uso local |
'9', |
'Maria Jose', |
'branco P', |
'Mangojata Mancuda', |
'vermelho P', |
'Cezar Torres Mo', |
'branco P', |
'Baka Lhau', |
'vermelho P', |
'JuJu Mentina', |
'branco M', |
'Amaro Dinha', |
'vermelho P', |
'Adabi Finho', |
'branco G', |
'Severina ', |
'branco G', |
'Carlos Chade ', |
'vermelho P', |
'0' |
] //para uso local |
|
// const nUniformes = parseInt(gets()); //para uso na DIO |
const nUniformes = parseInt(inputs[0]); //para uso local |
let i = 1; //para uso local |
let alunos = []; |
|
while (true) { |
// let nome = gets(); //para uso na DIO |
let nome = inputs[i++]; //para uso local |
if (parseInt(nome) === 0) break; |
|
// let [cor, tamanho] = gets().split(' '); //para uso na DIO |
let [cor, tamanho] = inputs[i++].split(' '); //para uso local |
|
alunos = [...alunos, { nome, cor, tamanho }] |
} |
|
alunos |
.sort((a, b) => { |
for (let [testCase, sortCase] of [ |
[a.cor > b.cor, 1], |
[a.cor < b.cor, -1], |
[a.tamanho > b.tamanho, -1], |
[a.tamanho < b.tamanho, 1], |
[a.nome > b.nome, 1], |
[a.nome < b.nome, -1], |
]) { |
if (testCase) return sortCase; |
} |
}) |
|
alunos.map(({ nome, cor, tamanho }) => { |
console.log(`${cor} ${tamanho} ${nome}`); |
/* |
Nenhum comentário:
Postar um comentário