summary refs log tree commit diff homepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2017/src/bin/day02.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/2017/src/bin/day02.rs b/2017/src/bin/day02.rs
index 07551a2..ca721d7 100644
--- a/2017/src/bin/day02.rs
+++ b/2017/src/bin/day02.rs
@@ -11,14 +11,41 @@ fn solve1(input: &str) -> u32 {
     sum
 }
 
+fn solve2(input: &str) -> u32 {
+    let mut sum = 0;
+
+    for row in input.lines() {
+        let values: Vec<u32> = row.split_whitespace()
+            .map(str::parse)
+            .map(Result::unwrap)
+            .collect();
+
+        for x in &values {
+            for y in &values {
+                if x != y && x % y == 0 {
+                    sum += x / y;
+                }
+            }
+        }
+    }
+
+    sum
+}
+
 fn main() {
     let mut input = String::new();
     io::stdin().read_to_string(&mut input).unwrap();
 
     println!("Part 1: {}", solve1(&input));
+    println!("Part 2: {}", solve2(&input));
 }
 
 #[test]
 fn part1() {
     assert_eq!(18, solve1("5 1 9 5\n7 5 3\n2 4 6 8\n"));
 }
+
+#[test]
+fn part2() {
+    assert_eq!(9, solve2("5 9 2 8\n9 4 7 3\n3 8 6 5\n"));
+}