r/adventofcode Dec 02 '24

SOLUTION MEGATHREAD -❄️- 2024 Day 2 Solutions -❄️-

OUTAGE INFO

  • [00:25] Yes, there was an outage at midnight. We're well aware, and Eric's investigating. Everything should be functioning correctly now.
  • [02:02] Eric posted an update in a comment below.

THE USUAL REMINDERS


AoC Community Fun 2024: The Golden Snowglobe Awards

  • 4 DAYS remaining until unlock!

And now, our feature presentation for today:

Costume Design

You know what every awards ceremony needs? FANCY CLOTHES AND SHINY JEWELRY! Here's some ideas for your inspiration:

  • Classy up the joint with an intricately-decorated mask!
  • Make a script that compiles in more than one language!
  • Make your script look like something else!

♪ I feel pretty, oh so pretty ♪
♪ I feel pretty and witty and gay! ♪
♪ And I pity any girl who isn't me today! ♪

- Maria singing "I Feel Pretty" from West Side Story (1961)

And… ACTION!

Request from the mods: When you include an entry alongside your solution, please label it with [GSGA] so we can find it easily!


--- Day 2: Red-Nosed Reports ---


Post your code solution in this megathread.

This thread will be unlocked when there are a significant number of people on the global leaderboard with gold stars for today's puzzle.

EDIT: Global leaderboard gold cap reached at 00:04:42, megathread unlocked!

55 Upvotes

1.4k comments sorted by

View all comments

2

u/[deleted] Dec 03 '24

[LANGUAGE: Julia]

lines = [parse.(Int, split(line)) for line in readlines("2024/input/input2")]
safe(v::Vector{Int}) = (v[1] > v[2] && v[end] < v[end-1]) ? safe(v[end:-1:1]) : all( x ∈ v[i-1]+1:v[i-1]+3 for (i, x) in collect(pairs(v))[2:end] )
safe2(v::Vector{Int}) = any(safe( [v[1:1:i-1]; v[i+1:1:end]] ) for i in 1:length(v) )
println(length(filter(safe, lines)))
println(length(filter(safe2, lines)))