summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2017-12-02 00:25:56 -0500
committerJune McEnroe <june@causal.agency>2020-11-22 00:14:25 -0500
commit857b87d9851d009d52dd39f98b9044daed93cf54 (patch)
tree002ca37d54a0b04917b7741ae40fdc1e34c05f5b
parentDay 2 (diff)
downloadaoc-857b87d9851d009d52dd39f98b9044daed93cf54.tar.gz
aoc-857b87d9851d009d52dd39f98b9044daed93cf54.zip
Day 2, part 2
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"));
+}
mp;follow=1'>Factor out html.sh and produce html for all sourcesJune McEnroe 2019-02-20Add Dirk Gently's Holistic Detective AgencyJune McEnroe 2019-02-20Move /opt/pkg after /usr in PATHJune McEnroe 2019-02-20Set man_hard_wrap in nvimJune McEnroe 2019-02-18Use hi -o anchor in upJune McEnroe 2019-02-18Don't match nested parentheses in Tag for CJune McEnroe 2019-02-18Match whitespace between * [] {}June McEnroe 2019-02-18Fix function-like #define regexJune McEnroe 2019-02-18Match Tag in RustJune McEnroe 2019-02-18Match sh functions as TagJune McEnroe 2019-02-18Match Sh and Ss as Tag in mdocJune McEnroe 2019-02-18Match statics and typedefs as TagJune McEnroe 2019-02-18Clean up htmlHeaderJune McEnroe 2019-02-18Remove hi line numberingJune McEnroe 2019-02-18Add Tag class to hiJune McEnroe 2019-02-17Generate HTML with hi -n -f html -o anchorJune McEnroe 2019-02-17Add hi -f html -o anchor for line number linksJune McEnroe 2019-02-17Simplify temp trap in upJune McEnroe 2019-02-17Add line numbers to hiJune McEnroe 2019-02-17Always split spans after newlinesJune McEnroe 2019-02-15Color format specifiers light cyan in vimJune McEnroe 2019-02-15Highlight Interp as yellowJune McEnroe 2019-02-15Highlight strings in sh command substitutionsJune McEnroe 2019-02-15Add nmap gpJune McEnroe 2019-02-14Avoid newline when copying URL to pasteboardJune McEnroe 2019-02-13Add forgotten "sixth" book of H2G2June McEnroe