From 27772c83b7e95321c1fdbd9a6485da9c2bf40ef5 Mon Sep 17 00:00:00 2001 From: Jeremy Kaplan Date: Mon, 5 Dec 2022 21:08:57 -0800 Subject: [PATCH] 2022 Day 6 --- 2022/src/bin/day06.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 2022/src/bin/day06.rs diff --git a/2022/src/bin/day06.rs b/2022/src/bin/day06.rs new file mode 100644 index 0000000..4582c78 --- /dev/null +++ b/2022/src/bin/day06.rs @@ -0,0 +1,38 @@ +use std::collections::HashSet; + +const INPUT: &str = include_str!("../../input/day06.txt"); + +fn main() { + println!("{}", part1(INPUT)); + println!("{}", part2(INPUT)); +} + +fn part1(input: &str) -> usize { + let sig: Vec = input.trim().chars().collect(); + + for i in 0..(sig.len()) { + let buf = &sig[i..(i + 4)]; + if all_different(buf) { + return i + 4; + } + } + + 0 +} + +fn all_different(c: &[char]) -> bool { + c.iter().cloned().collect::>().len() == c.len() +} + +fn part2(input: &str) -> usize { + let sig: Vec = input.trim().chars().collect(); + + for i in 0..(sig.len()) { + let buf = &sig[i..(i + 14)]; + if all_different(buf) { + return i + 14; + } + } + + 0 +}