this post was submitted on 03 Dec 2023
2 points (100.0% liked)

Advent Of Code

981 readers
32 users here now

An unofficial home for the advent of code community on programming.dev!

Advent of Code is an annual Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like.

AoC 2024

Solution Threads

M T W T F S S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25

Rules/Guidelines

Relevant Communities

Relevant Links

Credits

Icon base by Lorc under CC BY 3.0 with modifications to add a gradient

console.log('Hello World')

founded 1 year ago
MODERATORS
 

I know I'm not the only one finding day 3 frustrating.

My current code for day 3 is here. I find the locations of all of the special symbols, check around them to get the numbers, and dedup the list of numbers I find. To make things easier to debug, I generated some supplementary text files. One shows the input I used, but with all of the numbers I used replaced with 'x's: the output doesn't suggest any problems with my code that are obvious. The other has each number that went into the sum on its own line. I checked a few of these numbers and they seemed correct, but there are too many to check by hand.

What could I be doing wrong? I've officially run out of ideas.

you are viewing a single comment's thread
view the rest of the comments
[–] snowe 2 points 1 year ago* (last edited 1 year ago) (1 children)

Any given number has a set of “coordinates”. That exact number can’t be repeated, even if it’s surrounded by symbols. But that number might be elsewhere in the list.

edit:

here's an example:

1.1
.##
2.3

would give you a total of 7, because 1 and 1 are two different parts in the parts list. But the 1 in the top right is next two symbols, so you still only count it once. It's just a single part! Think of them as parts rather than numbers. Each part is a different thing, even if they have the same name.

[–] [email protected] 1 points 1 year ago (1 children)

I thought my checked_coord_set already made sure numbers next to more than one symbol were only counted once.

[–] snowe 1 points 1 year ago

If you’re already doing that and you’re deduping the list then you’re doing too much.