From 023e428b2669b13b769a946341c08f1a8006a31d Mon Sep 17 00:00:00 2001 From: Aleksa Vuckovic Date: Sat, 9 Dec 2023 04:09:31 +0100 Subject: day7+1 --- src/day8pt1.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/day8pt1.rs (limited to 'src/day8pt1.rs') diff --git a/src/day8pt1.rs b/src/day8pt1.rs new file mode 100644 index 0000000..ece5fd9 --- /dev/null +++ b/src/day8pt1.rs @@ -0,0 +1,36 @@ +use regex::Regex; + +pub fn main() { + let txt = std::fs::read_to_string("./input/day8.txt").unwrap(); + let input = txt.lines().collect::>(); + + let instr = input[0]; + let graf = (&input[2..input.len()]) + .into_iter() + .map(|s| { + let re = Regex::new(r"=\s*|\(|\)|,").unwrap(); + re.replace_all(s, "") + .split_whitespace() + .map(String::from) + .collect::>() + }) + .collect::>(); + + let mut cnt: u32 = 0; + let mut trn = "AAA"; + while trn != "ZZZ" { + for cvor in &graf { + if cvor[0] == trn { + if instr.chars().nth(cnt as usize % instr.len()).unwrap() == 'L' { + trn = cvor[1].as_str(); + } else { + trn = cvor[2].as_str(); + } + cnt += 1; + break; + } + } + } + + println!("{}", cnt); +} -- cgit v1.2.3