Day 13: Claw Contraption
Megathread guidelines
- Keep top level comments as only solutions, if you want to say something other than a solution put it in a new post. (replies to comments can be whatever)
- You can send code in code blocks by using three backticks, the code, and then three backticks or use something such as https://topaz.github.io/paste/ if you prefer sending it through a URL
FAQ
- What is this?: Here is a post with a large amount of details: https://programming.dev/post/6637268
- Where do I participate?: https://adventofcode.com/
- Is there a leaderboard for the community?: We have a programming.dev leaderboard with the info on how to join in this post: https://programming.dev/post/6631465
Uiua
Pretty much just a transcription of my Dart solution.
Data ← ⊜(⊜(⊜⋕⊸∈"0123456789")⊸≠@\n)⊸(¬⦷"\n\n")"Button A: X+94, Y+34\nButton B: X+22, Y+67\nPrize: X=8400, Y=5400\n\nButton A: X+26, Y+66\nButton B: X+67, Y+21\nPrize: X=12748, Y=12176\n\nButton A: X+17, Y+86\nButton B: X+84, Y+37\nPrize: X=7870, Y=6450\n\nButton A: X+69, Y+23\nButton B: X+27, Y+71\nPrize: X=18641, Y=10279" IsInt ← <0.00001⌵-⁅. AB ← ÷°⊂≡(/-×⇌°⊟)⊏[0_1 2_1 0_2] Cost ← /+×IsInt.×3_1AB &p /+≡Cost Data &p /+≡(Cost⍜(⊡2|+1e13))Data
Welp, got frustrated again with part one because there kept being something wrong with my totally-not-ugly loop and so came here again. I did have to change
IsInt
(and thus alsoCost
to account for different handling) for part two though because I kept getting wrong results for my input.I’m guessing it’s because uiua didn’t see the difference between rounded and non-rounded number anymore.
Here’s the updated, slightly messier version of the two functions that worked out for me in the end :D
Could have been done better but I’m lacking the patience for that now
Yeah, I had to fiddle with that limit before it actually worked for me, so it’s clearly quite sensitive to the data :-)