AoC2020/src/day1.rs

43 lines
1.0 KiB
Rust

use std::io::BufRead;
pub fn part1<F: BufRead> (input: F) {
let input: Vec<_> = input.lines()
.filter_map(|line| line.unwrap().parse::<i32>().ok())
.collect();
let input_len = input.len() - 1;
for i in 0..input_len {
for j in i..input_len {
if input[i] + input[j] == 2020 {
println!("{}", input[i] * input[j]);
return
}
}
}
}
pub fn part2<F: BufRead> (input: F) {
let input: Vec<_>= input.lines()
.filter_map(|line| line.unwrap().parse::<i32>().ok())
.collect();
let input_len = input.len() - 1;
for i in 0..input_len {
for j in i..input_len {
if input[i] + input[j] > 2020 {
continue;
} else {
for k in j..input_len {
if input[i] + input[j] + input[k] == 2020 {
println!("{}", input[i] * input[j] * input[k] );
return
}
}
}
}
}
}