Completed day 1 of 2020 aoc

This commit is contained in:
2024-12-02 15:56:34 +01:00
parent 9c227df6e3
commit 2c038b2760
4 changed files with 280 additions and 0 deletions

View 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);
}
}