summaryrefslogtreecommitdiff
path: root/2024/02
diff options
context:
space:
mode:
Diffstat (limited to '2024/02')
-rwxr-xr-x2024/02/python.py24
-rwxr-xr-x2024/02/raku.raku9
-rw-r--r--2024/02/rust/Cargo.lock7
-rw-r--r--2024/02/rust/Cargo.toml6
-rw-r--r--2024/02/rust/src/main.rs33
5 files changed, 0 insertions, 79 deletions
diff --git a/2024/02/python.py b/2024/02/python.py
deleted file mode 100755
index f2c807d..0000000
--- a/2024/02/python.py
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env python3
-
-from fileinput import input
-
-reports = [[int(level) for level in report.split()] for report in input()]
-
-
-def incr(xs):
- return all(x < y and y - x <= 3 for x, y in zip(xs, xs[1:]))
-
-
-def safe(xs):
- return incr(xs) or incr(xs[::-1])
-
-
-def drops(xs):
- return (xs[:idx] + xs[idx + 1 :] for idx, _ in enumerate(xs))
-
-
-silver = sum(safe(rep) for rep in reports)
-gold = sum(any(safe(mod) for mod in drops(rep)) for rep in reports)
-
-print("silver:", silver)
-print("gold:", gold)
diff --git a/2024/02/raku.raku b/2024/02/raku.raku
deleted file mode 100755
index 9b930de..0000000
--- a/2024/02/raku.raku
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env raku
-
-my @rs = lines>>.words.map(&cache);
-
-sub incr ($r) { $r.rotor(2=>-1).map({ ([-] $_) (elem) (1..3)}).all };
-sub safe ($r) { so $r.&incr || $r.reverse.&incr };
-
-say "silver: ", @rs.map(&safe).sum;
-say "gold: ", @rs.map({ $_.combinations($_-1).map(&safe).any.so }).sum;
diff --git a/2024/02/rust/Cargo.lock b/2024/02/rust/Cargo.lock
deleted file mode 100644
index f3a3299..0000000
--- a/2024/02/rust/Cargo.lock
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 4
-
-[[package]]
-name = "aoc_2024-02"
-version = "0.1.0"
diff --git a/2024/02/rust/Cargo.toml b/2024/02/rust/Cargo.toml
deleted file mode 100644
index 6030837..0000000
--- a/2024/02/rust/Cargo.toml
+++ /dev/null
@@ -1,6 +0,0 @@
-[package]
-name = "aoc_2024-02"
-version = "0.1.0"
-edition = "2021"
-
-[dependencies]
diff --git a/2024/02/rust/src/main.rs b/2024/02/rust/src/main.rs
deleted file mode 100644
index 2007837..0000000
--- a/2024/02/rust/src/main.rs
+++ /dev/null
@@ -1,33 +0,0 @@
-#![feature(iter_map_windows)]
-
-use std::io;
-
-fn main() {
- let input: Vec<Vec<i64>> = io::stdin()
- .lines()
- .map(|line| {
- line.unwrap()
- .split_whitespace()
- .map(str::parse::<i64>)
- .collect()
- })
- .collect::<Result<Vec<_>, _>>()
- .unwrap();
-
- let silver: usize = input.iter().filter(|&xs| all_safe(xs)).count();
- let gold: usize = input.iter().filter(|&xs| drop_safe(xs)).count();
- println!("silver: {silver}");
- println!("gold: {gold}");
-}
-
-fn all_safe(xs: &Vec<i64>) -> bool {
- let mut diffs = xs.iter().map_windows(|&[x, y]| y - x).peekable();
- let dir = diffs.peek().unwrap_or(&1).signum();
- diffs.all(|d| (1..=3).contains(&d.abs()) && d.signum() == dir)
-}
-
-fn drop_safe(xs: &Vec<i64>) -> bool {
- (0..xs.len())
- .map(|idx| xs.split_at(idx))
- .any(|(left, right)| all_safe(&[left, &right[1..]].concat()))
-}