Advent of Code 2022 - Dia 20
No contexto deste outro conteúdo: https://www.tabnews.com.br/tcarreira/advent-of-code-2022-desafios-de-programacao (se gostarem deste conteúdo, votem no original, para que ele fique visível durante o tempo do AoC)
--- Dia 20: Sistema de Posicionamento do Arvoredo ---
Finalmente chegou a hora de nos encontrarmos novamente com os Elfos. Quando você tenta contatá-los, no entanto, você não obtém resposta. Talvez você esteja fora de alcance?
Você sabe que eles estão indo para o arvoredo onde a fruta estrela cresce, então se você descobrir onde fica, você deve ser capaz de se encontrar com eles.
Felizmente, seu dispositivo portátil possui um arquivo (sua entrada do puzzle) que contém as coordenadas do arvoredo! Infelizmente, o arquivo é criptografado - só para o caso de o dispositivo cair em mãos erradas.
Talvez você possa descriptografa-lo?
Quando você ainda estava no acampamento, você ouviu alguns elfos falando sobre criptografia de arquivos de coordenadas. A principal operação envolvida na descriptografia do arquivo é chamada de mistura.
O arquivo criptografado é uma lista de números. Para misturar o arquivo, mova cada número para frente ou para trás no arquivo um número de posições igual ao valor do número que está sendo movido. A lista é circular, portanto, um número movido para lá de uma extremidade da lista aparece no início da outra extremidade, como se as extremidades estivessem conectadas.
Por exemplo, para mover o 1
em uma sequência como 4, 5, 6, 1, 7, 8, 9
, o 1
move uma posição para frente: 4, 5, 6, 7, 1, 8 , 9
. Para mover o -2
em uma sequência como 4, -2, 5, 6, 7, 8, 9
, o -2
move duas posições para trás, aparecendo do outro lado: 4, 5, 6, 7, 8, -2, 9
.
Os números devem ser movidos na ordem em que aparecem originalmente no arquivo criptografado. Os números que se movem durante o processo de mistura não alteram a ordem em que os números são movidos.
Considere este arquivo criptografado:
1
2
-3
3
-2
0
4
A mistura desse arquivo ocorre da seguinte maneira:
Arranjo inicial:
1, 2, -3, 3, -2, 0, 4
1 é movido para entre 2 e -3:
2, 1, -3, 3, -2, 0, 4
2 é movido para entre -3 e 3:
1, -3, 2, 3, -2, 0, 4
-3 é movido para entre -2 e 0:
1, 2, 3, -2, -3, 0, 4
3 é movido para entre 0 e 4:
1, 2, -2, -3, 0, 3, 4
-2 é movido para entre 4 e 1:
1, 2, -3, 0, 3, 4, -2
0 não se move:
1, 2, -3, 0, 3, 4, -2
4 é movido para entre -3 e 0:
1, 2, -3, 4, 0, 3, -2
Em seguida, as coordenadas do arvoredo podem ser encontradas observando as posições 1000º, 2000º e 3000º após o valor 0
, voltando ao início da lista conforme necessário. No exemplo acima, o 1000º número após 0
é 4
, o 2000º é -3
e o 3000º é 2
; somando-os produz 3
.
Misture seu arquivo criptografado exatamente uma vez. Qual é a soma dos três números que formam as coordenadas do arvoredo?
--- Parte Dois ---
https://github.com/tcarreira/aoc2022/tree/main/day20#----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:
- https://adventofcode.com/2022/day/20
- Código, soluções e traduções: github.com/tcarreira/aoc2022
- Live streaming
- Playlists no youtube
- senha do Private Leaderboard:
827447-e95d42f1