summaryrefslogtreecommitdiff
path: root/aoc22/day4/src/main.rs
diff options
context:
space:
mode:
authorMathias Magnusson <mathias@magnusson.space>2024-07-06 14:10:15 +0200
committerMathias Magnusson <mathias@magnusson.space>2024-07-06 14:12:06 +0200
commit8ab3bcb7992ecd4d0234ff31ab2e50d1562f67ba (patch)
treef13ddef97559d6d14004357f77ea153a732f217e /aoc22/day4/src/main.rs
parent4e8ac826929117f95baeb37e1518773d1169d900 (diff)
downloadprogramming-problem-solving-8ab3bcb7992ecd4d0234ff31ab2e50d1562f67ba.tar.gz
Some old uncommited aoc22
Diffstat (limited to 'aoc22/day4/src/main.rs')
-rw-r--r--aoc22/day4/src/main.rs52
1 files changed, 52 insertions, 0 deletions
diff --git a/aoc22/day4/src/main.rs b/aoc22/day4/src/main.rs
new file mode 100644
index 0000000..2dc7299
--- /dev/null
+++ b/aoc22/day4/src/main.rs
@@ -0,0 +1,52 @@
+#![feature(iter_next_chunk)]
+
+fn main() {
+ part1();
+ part2();
+}
+
+fn part1() {
+ let input = include_str!("../input");
+
+ let mut ans = 0;
+ for line in input.lines() {
+ let mut split = line
+ .split(',')
+ .flat_map(|elf| elf.split('-').flat_map(|x| x.parse::<u32>()));
+ let b1 = split.next().unwrap();
+ let e1 = split.next().unwrap();
+ let b2 = split.next().unwrap();
+ let e2 = split.next().unwrap();
+ let s1 = b1..=e1;
+ let s2 = b2..=e2;
+
+ if s1.contains(&b2) && s1.contains(&e2) || s2.contains(&b1) && s2.contains(&e1) {
+ ans += 1;
+ }
+ }
+
+ println!("{}", ans);
+}
+
+fn part2() {
+ let input = include_str!("../input");
+
+ let mut ans = 0;
+ for line in input.lines() {
+ let mut split = line
+ .split(',')
+ .flat_map(|elf| elf.split('-').flat_map(|x| x.parse::<u32>()));
+ let b1 = split.next().unwrap();
+ let e1 = split.next().unwrap();
+ let b2 = split.next().unwrap();
+ let e2 = split.next().unwrap();
+ let s1 = b1..=e1;
+ let s2 = b2..=e2;
+
+ if s1.contains(&b2) || s1.contains(&e2) || s2.contains(&b1) || s2.contains(&e1) {
+ ans += 1;
+ }
+ }
+
+ println!("{}", ans);
+}