Mercurial > repos > other > adventofcode2023
annotate day15.txt @ 22:ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
Hash implementation was trivial, but I skipped the rest for now.
Day 16 part 1 approach works unchanged for part 2! Just needed
to run repeatedly with different inputs.
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 16 Dec 2023 14:42:06 +0000 |
parents | |
children |
rev | line source |
---|---|
22
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
1 --- Day 15: Lens Library --- |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
2 |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
3 Implement a custom hashing algorithm: |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
4 Determine the ASCII code for the current character of the string. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
5 Increase the current value by the ASCII code you just determined. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
6 Set the current value to itself multiplied by 17. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
7 Set the current value to the remainder of dividing itself by 256. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
8 |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
9 Values are comma-separated. For example: |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
10 |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
11 rn=1,cm-,qp=3,cm=2,qp-,pc=4,ot=9,ab=5,pc-,pc=6,ot=7 |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
12 |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
13 Gives 11 individual steps; the result of running the HASH algorithm on each of the steps is as follows: |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
14 |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
15 rn=1 becomes 30. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
16 cm- becomes 253. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
17 qp=3 becomes 97. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
18 cm=2 becomes 47. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
19 qp- becomes 14. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
20 pc=4 becomes 180. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
21 ot=9 becomes 9. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
22 ab=5 becomes 197. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
23 pc- becomes 48. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
24 pc=6 becomes 214. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
25 ot=7 becomes 231. |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
26 |
ad73a2ff3d06
Implement Day 15 part 1 and all of Day 16
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
27 Then sum the hashes. |