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/day4pt1.rs | |
Initial commit
Diffstat (limited to 'src/day4pt1.rs')
| -rw-r--r-- | src/day4pt1.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/day4pt1.rs b/src/day4pt1.rs new file mode 100644 index 0000000..5a622a8 --- /dev/null +++ b/src/day4pt1.rs @@ -0,0 +1,45 @@ +pub fn main() { + let txt = std::fs::read_to_string("./input/day4.txt").unwrap(); + let mut sum: u32 = 0; + for line in txt.lines() { + 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; + } + } + } + + if cnt > 0 { + sum += 2u32.pow(cnt - 1); + } + } + + println!("{}", sum); +} |
