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
R (R-Wasm)
input = file('input2024day2.txt',open='r') lines = readLines(input) library(stringr) safe = 0 safe2 = 0 for (ln in lines){ vals = as.numeric(unlist(str_split(ln,' '))) diffs = diff(vals) cond1 = min(diffs) > 0 || max(diffs) < 0 cond2 = max(abs(diffs)) < 4 if (cond1 && cond2){ safe = safe + 1 } else { #Problem Dampener dampen = FALSE for (omit in -1:-length(vals)){ diffs = diff(vals[omit]) cond1 = min(diffs) > 0 || max(diffs) < 0 cond2 = max(abs(diffs)) < 4 if (cond1 && cond2){ dampen = TRUE } } if (dampen){ safe2 = safe2 + 1} } } print (safe) #Part 1 print (safe + safe2) #Part 2