Resolvendo problemas no HackerRank: Organizando bolinhas em um container
Altencir Junior
Posted on April 10, 2023
Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje, organizar bolas que estão dentro de caixas, baseado em alguns parâmetros. Vejamos mais informações com a explicação detalhada e sua resolução.
Organizing Containers of Balls -
David tem vários recipientes, cada um com um número de bolas. Ele tem recipientes suficientes para separar cada tipo de bola que possui em seu próprio recipiente. David quer classificar as bolas usando seu método de classificação.
David deseja realizar algumas operações de swap de modo que:
- Cada recipiente contém apenas bolas do mesmo tipo.
- Não há duas bolas do mesmo tipo localizadas em recipientes diferentes.
Vejamos o código:
function organizingContainers(container) {
// Write your code here
let obj1 = {};
let obj2 = {};
for (let i = 0; i < container.length; i++) {
obj1[i] = container[i].reduce((a, b) => a + b);
obj2[i] = 0;
for (let j = 0; j < container.length; j++) {
obj2[i] += container[j][i];
}
}
let x = Object.values(obj1).sort((a, b) => a - b);
let y = Object.values(obj2).sort((a, b) => a - b);
if(JSON.stringify(x) === JSON.stringify(y)) {
return "Possible"
} else {
return "Impossible"
}
}
O valor adicionado a obj1[i] é a soma dos elementos no array container[i], que é obtido usando o método reduce(). Enquanto o valor adicionado a obj2[i] é a soma dos elementos na coluna i em todos os arrays de container. Isso é feito usando um loop for interno, que percorre o array container novamente e soma os valores em cada coluna i.
Após o loop for, o código converte os valores em obj1 e obj2 em arrays usando o método Object.values(). Em seguida, ele classifica os dois arrays usando o método sort(), com a função de classificação que classifica em ordem crescente.
Por fim, o código verifica se os dois arrays classificados são iguais usando o método JSON.stringify(). Se eles forem iguais, o código retorna "Possible", caso contrário, retorna "Impossible".
O resultado final será:
2
2
1 1
1 1
2
0 2
1 1
Possible
Impossible
Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.
Posted on April 10, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 30, 2024