Day 2: Red-Nosed Reports
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://blocks.programming.dev/ 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/22323136
- 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
Uiua is still developing very quickly, and this code uses the experimental
tuples
function, hence the initial directive.Try it Live!
# Experimental! "7 6 4 2 1\n1 2 7 8 9\n9 7 6 2 1\n1 3 2 4 5\n8 6 4 4 1\n1 3 6 7 9" ⊜(⊜⋕⊸≠@\s)⊸≠@\n # Partition at \n, then at space, parse ints. IsSorted ← +⊃(≍⇌⍆.|≍⍆.) # Compare with sorted array. IsSmall ← /××⊃(>0|<4)⌵↘¯1-↻1. # Copy offset by 1, check diffs. IsSafe ← ×⊃IsSmall IsSorted # Safe if Small steps and Ordered. IsSafer ← ±/+≡IsSafe ⧅<-1⧻. # Choose 4 from 5, check again. &p/+≡IsSafe . # Part1 : Is each row safe? &p/+≡(±+⊃IsSafe IsSafer) # Part2 : Is it safe or safer?
This looks so alien! Does it work with the full set? The comment says 5, choose 4, but I guess it’s written as n, choose n-1?
How do you write this, not conceptually but physically. Do you have a char picker open at all times?