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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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.