From db2686c798378738020a0951a521358586e21aa0 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Fri, 9 Feb 2024 11:42:04 +0100 Subject: Add day2 in OCaml --- 2023/day6/src/lib.rs | 102 --------------------------------------------------- 1 file changed, 102 deletions(-) delete mode 100644 2023/day6/src/lib.rs (limited to '2023/day6/src/lib.rs') diff --git a/2023/day6/src/lib.rs b/2023/day6/src/lib.rs deleted file mode 100644 index b3e33cb..0000000 --- a/2023/day6/src/lib.rs +++ /dev/null @@ -1,102 +0,0 @@ -pub fn part1(input: &str) -> u64 { - let mut res: u64 = 1; - - let td: Vec> = input - .trim_end() - .split('\n') - .map(|x| { - x.split(':') - .nth(1) - .unwrap() - .trim() - .replace(" ", " ") - .replace(" ", " ") - .replace(" ", " ") - .split(' ') - .map(|y| y.parse::().unwrap()) - .collect() - }) - .collect(); - - assert_eq!(td.len(), 2); - let (t, d) = (&td[0], &td[1]); - - for i in 0..t.len() { - let mut r = 0; - for j in 0..t[i] { - if (t[i] - j) * j > d[i] { - r += 1; - } - } - res *= r; - } - - res -} - -pub fn part2(input: &str) -> u64 { - let mut res: u64 = 1; - - let td: Vec> = input - .trim_end() - .split('\n') - .map(|x| { - x.split(':') - .nth(1) - .unwrap() - .trim() - .replace(" ", "") - .split(' ') - .map(|y| y.parse::().unwrap()) - .collect() - }) - .collect(); - - assert_eq!(td.len(), 2); - let (t, d) = (&td[0], &td[1]); - - for i in 0..t.len() { - let mut r = 0; - for j in 0..t[i] { - if (t[i] - j) * j > d[i] { - r += 1; - } - } - res *= r; - } - - res -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn example_part1() { - let input = include_str!("../example.txt"); - let result = part1(input); - assert_eq!(result, 288); - } - - #[test] - fn input_part1() { - let input = include_str!("../input.txt"); - let result = part1(input); - assert_eq!(result, 74698); - } - - #[test] - fn example_part2() { - let input = include_str!("../example.txt"); - let result = part2(input); - assert_eq!(result, 71503); - } - - #[test] - fn input_part2() { - let input = include_str!("../input.txt"); - let result = part2(input); - assert_eq!(result, 27563421); - } -} -- cgit v1.2.3-18-g5258