add day 3
This commit is contained in:
Generated
+25
@@ -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",
|
||||||
|
]
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
[package]
|
||||||
|
name = "day03"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2024"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
itertools = "*"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
5 10 25
|
||||||
+1992
File diff suppressed because it is too large
Load Diff
@@ -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}");
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user