Advent of Code 2022 - Dia 05

No contexto deste outro conteúdo: https://www.tabnews.com.br/tcarreira/advent-of-code-2022-desafios-de-programacao


--- Dia 5: Pilhas de Suprimentos ---

A expedição pode partir assim que os últimos suprimentos tenham sido descarregados dos navios. Os suprimentos são guardados em pilhas de caixotes marcados, mas porque os suprimentos necessários estão enterrados debaixo de muitos outros caixotes, os caixotes precisam ser reorganizados.

O navio tem um guindaste de carga gigante, capaz de mover caixotes entre pilhas. Para garantir que nenhum caixote seja esmagado ou caia, a operadora do guindaste vai reordená-los seguindo um conjunto de passos cuidadosamente planeados. Depois dos caixotes serem reorganizados, o caixotes desejados estarão no topo de cada pilha.

Os Elfos não querem interromper a operadora do guindaste durante este delicado procedimento, mas eles esqueceram perguntar-lhe qual caixote irá ficar onde, e eles querem estar preparados para descarrega-los assim que possível, para que possam embarcar.

Contudo, eles têm um desenho das pilhas de caixotes inicial, e o procedimento de reorganização (o input do puzzle). Por exemplo:

    [D]    
[N] [C]    
[Z] [M] [P]
 1   2   3 

move 1 from 2 to 1
move 3 from 1 to 3
move 2 from 2 to 1
move 1 from 1 to 2

Neste exemplo, existem três pilhas de caixotes. A pilha 1 contém dois caixotes: caixote Z está no fundo, e o caixote N está no topo. A pilha 2 contém três caixotes; do fundo para o topo, eles são caixotes M, C, e D. Finalmente, a pilha 3 contém um único caixote, P.

Então, o procedimento de reorganização é dado. Em cada passo do procedimento, uma quantidade de caixotes é movida de uma pilha para uma pilha diferente. No primeiro passo do procedimento de reorganização acima, um caixote é movido da pilha 2 para a pilha 1, resultando nesta configuração:

[D]        
[N] [C]    
[Z] [M] [P]
 1   2   3 

No segundo passo, três caixotes são movidos da pilha 1 para a pilha 3. Os caixotes são movidos um de cada vez, então o primeiro caixote a ser movido (D) acaba abaixo do segundo e terceiro caixotes:

        [Z]
        [N]
    [C] [D]
    [M] [P]
 1   2   3

Depois, ambos os caixotes são movidos da pilha 2 para a pilha 1. Novamente, porque os caixotes são movidos um de cada vez, o caixote C acaba abaixo do caixote M:

        [Z]
        [N]
[M]     [D]
[C]     [P]
 1   2   3

Finalmente, um caixote é movido da pilha 1 para a pilha 2:

        [Z]
        [N]
        [D]
[C] [M] [P]
 1   2   3

Os Elfos só precisam saber qual caixote irá acabar no topo de cada pilha; neste exemplo, os caixotes no topo são C na pilha 1, M na pilha 2, e Z na pilha 3, então é preciso juntar estes três e dar aos Elfos a mensagem CMZ.

Depois do procedimento de reorganização terminar, qual caixote acaba no topo de cada pilha?

--- Parte Dois ---

https://github.com/tcarreira/aoc2022/tree/main/day05#----parte-dois----

(saber a parte 2 antes de fazer a parte 1 não é tão divertido. Então vou deixar apenas o link para o Github 😉)


Outros links:

tcarreira essa sua sequência de conteúdo mostra como seria legal ser possível criar uma espécie de Playist aqui dentro do TabNews. Tem tanta coisa legal para implementar ainda 👍

E gostaria de aproveitar para agradecer que sua sugestão no passado de fazer o login apenas por email e não username nos fez evitar uma falha de segurança ainda mais crítica reportada neste postmortem 🤝

É sim :D Não tendo essa funcionalidade, eu vou editando o final do [artigo original](https://www.tabnews.com.br/tcarreira/advent-of-code-2022-desafios-de-programacao ) com os links para estes artigos relacionados. Não sei se funciona bem ou não, mas acho que é útil para referênciar todos os artigos no mesmo lugar. O postmortem está fantástico. E concordo que deviam ser publicados mais artigos como esse por todas as empresas (mas já muitos comentaram isso lá ;P ) Fico feliz que você tenha se lembrado ❤️ Vou aproveitar esta deixa para comentar uma coisa que eu não sei se tem solução (pelo menos enquanto as tabCoins não puderem ser usadas): Eu gostaria que o meu artigo original sobre o [Advent of Code 2022](https://www.tabnews.com.br/tcarreira/advent-of-code-2022-desafios-de-programacao ) estivesse visível durante o mês de Dezembro (duração do evento), não porque eu queira receber "likes" ou TabCoins, mas porque eu acho que pode ser um projeto válido para muitos, principalmente aqueles que não têm conhecimentos de inglês (um pouco como o TabNews ❤️). Infelizmente, o artigo só esteve visível alguns minutos o que certamente não cria uma oportunidade de engajamento. Acho bem possível que isso seja verdade para muitos dos posts, mas talvez a capacidade de usar TabCoins para publicitar resolva esse problema ¯\_(ツ)_/¯ "Certamente" *não vou* pedir para você usar a sua influência e indicar este projeto nas redes sociais se acreditar que é uma parada com valor 🤣 (#shamelessplug)
Show! Vou fazer uma publicação nas minhas redes e vamos ver se o pessoal se interessa, porque de fato está uma **megathread** e isso tem muito valor 🤝

Acabei de resolver esse, to nem acreditando que cheguei até aqui, haha. Tenho apenas alguns meses de programação. Estou resolvendo em JS