add day 3

This commit is contained in:
timeshifter
2026-06-26 23:07:50 +02:00
parent 1d54ac6752
commit 76ca410ec3
5 changed files with 2076 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 4
[[package]]
name = "day03"
version = "0.1.0"
dependencies = [
"itertools",
]
[[package]]
name = "either"
version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e"
[[package]]
name = "itertools"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc"
dependencies = [
"either",
]
+7
View File
@@ -0,0 +1,7 @@
[package]
name = "day03"
version = "0.1.0"
edition = "2024"
[dependencies]
itertools = "*"
+1
View File
@@ -0,0 +1 @@
5 10 25
+1992
View File
File diff suppressed because it is too large Load Diff
+51
View File
@@ -0,0 +1,51 @@
use itertools::Itertools;
fn main() {
let binding = std::fs::read_to_string("input.txt").unwrap();
let data: Vec<Vec<_>> = binding
.lines()
.map(|l| {
l.split_whitespace()
.map(|s| s.parse::<usize>().unwrap())
.collect()
})
.collect();
part1(&data);
let mut a: Vec<usize> = vec![];
let mut b: Vec<usize> = vec![];
let mut c: Vec<usize> = vec![];
binding.lines().for_each(|l| {
let mut iter = l.split_whitespace();
a.push(iter.next().unwrap().parse().unwrap());
b.push(iter.next().unwrap().parse().unwrap());
c.push(iter.next().unwrap().parse().unwrap());
});
b.drain(..).for_each(|item| a.push(item));
c.drain(..).for_each(|item| a.push(item));
let data: Vec<_> = a
.iter()
.tuples()
.map(|(a, b, c)| vec![*a, *b, *c])
.collect();
part1(&data);
}
fn part1(data: &[Vec<usize>]) {
let result = data
.iter()
.filter(|t| {
let a: usize = t[0];
let b: usize = t[1];
let c: usize = t[2];
a + b > c && a + c > b && b + c > a
})
.count();
println!("{result}");
}