diff options
author | Justin Wernick <justin@worthe-it.co.za> | 2022-04-19 20:22:56 +0200 |
---|---|---|
committer | Justin Wernick <justin@worthe-it.co.za> | 2022-04-19 20:23:15 +0200 |
commit | 174772b5b8d9f5bf5e3c8e8152adfd89f0e83f6b (patch) | |
tree | a003b748ee939b30a2bcd3caf2378228baa304c1 /aoc3/src/main.rs | |
parent | fd75b3fb95ad049b0025cb8fc0b3459b8f872d61 (diff) |
Refile for merging repos
Diffstat (limited to 'aoc3/src/main.rs')
-rw-r--r-- | aoc3/src/main.rs | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/aoc3/src/main.rs b/aoc3/src/main.rs deleted file mode 100644 index 678933f..0000000 --- a/aoc3/src/main.rs +++ /dev/null @@ -1,64 +0,0 @@ -use std::io::BufReader; -use std::io::prelude::*; -use std::fs::File; - - -struct Triangle { - l1: i32, - l2: i32, - l3: i32 -} - -impl Triangle { - fn is_valid(&self) -> bool { - (self.l1 + self.l2) > self.l3 && - (self.l2 + self.l3) > self.l1 && - (self.l3 + self.l1) > self.l2 - - } -} - -fn main() { - let len = read_file().iter().filter(|tri| tri.is_valid()).count(); - println!("{} valid triangles", len); -} - -fn read_file() -> Vec<Triangle> { - let file = BufReader::new(File::open("input.txt").unwrap()); - let mut lines = file.lines() - .map(|line| line.unwrap().trim().to_string()) - .filter(|line| line.len() > 0) - .peekable(); - - let mut results = Vec::new(); - while lines.peek().is_some() { - let (t11, t21, t31) = parse_line(lines.next().unwrap()); - let (t12, t22, t32) = parse_line(lines.next().unwrap()); - let (t13, t23, t33) = parse_line(lines.next().unwrap()); - - results.push(Triangle { - l1: t11, - l2: t12, - l3: t13 - }); - results.push(Triangle { - l1: t21, - l2: t22, - l3: t23 - }); - results.push(Triangle { - l1: t31, - l2: t32, - l3: t33 - }); - } - results -} - -fn parse_line(line: String) -> (i32, i32, i32) { - let mut separated = line.split_whitespace(); - (separated.next().unwrap().trim().parse().unwrap(), - separated.next().unwrap().trim().parse().unwrap(), - separated.next().unwrap().trim().parse().unwrap()) -} - |