diff options
| author | Aleksa Vuckovic <aleksa@vuckovic.cc> | 2023-12-06 01:45:05 +0100 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksa@vuckovic.cc> | 2023-12-06 01:45:05 +0100 |
| commit | 8089545c22b1ae4a98e967f070c3e298e6808961 (patch) | |
| tree | 0f8b13fbdeffc7ae03f3d7bfefbf6ef81bb3fb3a /src/day4pt2.rs | |
Initial commit
Diffstat (limited to 'src/day4pt2.rs')
| -rw-r--r-- | src/day4pt2.rs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/day4pt2.rs b/src/day4pt2.rs new file mode 100644 index 0000000..765e992 --- /dev/null +++ b/src/day4pt2.rs @@ -0,0 +1,49 @@ +pub fn main() { + let txt = std::fs::read_to_string("./input/day4.txt").unwrap(); + let mut sum: u32 = 0; + let mut a = vec![1; 256]; + + for (idx, line) in txt.lines().enumerate() { + let mut cnt: u32 = 0; + + let mut br1 = vec![]; + let mut br2 = vec![]; + + let sec_pt = line + .split(": ") + .collect::<Vec<&str>>() + .get(1) + .unwrap() + .split(" | ") + .collect::<Vec<&str>>(); + for i in sec_pt.get(0).unwrap().split(r" ") { + if i == "" { + continue; + } + br1.push(i.parse::<u32>().unwrap()); + } + + for i in sec_pt.get(1).unwrap().split(r" ") { + if i == "" { + continue; + } + br2.push(i.parse::<u32>().unwrap()); + } + + for i in &br1 { + for j in &br2 { + if i == j { + cnt += 1; + } + } + } + + for i in 1..cnt + 1 { + a[idx + i as usize] += a[idx]; + } + + sum += a[idx]; + } + + println!("{}", sum); +} |
