this post was submitted on 06 Dec 2024
17 points (100.0% liked)

Advent Of Code

999 readers
1 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 that we can brute force it by placing an obstacle at every valid position in the path, but is there a more elegant / efficient solution?

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

I am using same solution, and getting right count with test input, but the actual input gives too many.

Annoying, and really hard to debug. I made renderer to visualize, but unable to find the bug.

One misunderstanding was that I counted same walls twice, because the result should not count same added wall twice if it has same x,y.

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

Yeah something like that happend for me too, and later I counted too little because it would not recognise some possible solutions. Finally I solved it by just walking along the path and at each location put an obstacle in front of it and then check if the changed map results in a path enters longer than 10000 steps. Not pretty but at least it lead to the right result with a runtime of ~3 seconds. I would have saved a lot of time if I had tried the "brute force" way before, so I guess lesson learned.

[–] [email protected] 2 points 1 month ago

You can track by just keeping list of all positions and movement direction, if two are same, it means that it is in a loop.