Completed day 1 of 2020 aoc
This commit is contained in:
68
advent_of_code/2020/1/src/main.rs
Normal file
68
advent_of_code/2020/1/src/main.rs
Normal file
@@ -0,0 +1,68 @@
|
||||
fn solve_1(input: &str) -> u32 {
|
||||
let numbers: Vec<u32> = input
|
||||
.lines()
|
||||
.map(|number| number.parse::<u32>().unwrap())
|
||||
.collect();
|
||||
|
||||
for n in numbers.iter() {
|
||||
for m in numbers.iter() {
|
||||
if n + m == 2020 {
|
||||
return n * m;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
fn solve_2(input: &str) -> u32 {
|
||||
let numbers: Vec<u32> = input
|
||||
.lines()
|
||||
.map(|number| number.parse::<u32>().unwrap())
|
||||
.collect();
|
||||
|
||||
for n in numbers.iter() {
|
||||
for m in numbers.iter() {
|
||||
if n + m > 2020 {
|
||||
continue;
|
||||
}
|
||||
for v in numbers.iter() {
|
||||
if n + m + v == 2020 {
|
||||
return n * m * v;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
fn main() {
|
||||
println!("Hello, this is Patrick!");
|
||||
|
||||
let input = include_str!("../input.txt");
|
||||
|
||||
let result_1 = solve_1(input);
|
||||
println!("The magic number is {}", result_1);
|
||||
|
||||
let result_2 = solve_2(input);
|
||||
println!("The bigger magic number is {}", result_2);
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_1() {
|
||||
let test_input = include_str!("../test.txt");
|
||||
assert_eq!(solve_1(test_input), 514579);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_2() {
|
||||
let test_input = include_str!("../test.txt");
|
||||
assert_eq!(solve_2(test_input), 241861950);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user