summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorJune McEnroe <programble@gmail.com>2017-12-15 15:03:32 -0500
committerJune McEnroe <programble@gmail.com>2017-12-15 15:03:32 -0500
commit10b60709e3b18bcdd85d3c3d708fc55b0b2a29c7 (patch)
tree7396d535210aa9ee3f23fcedf1974773fe3bb3e6
parentDay 11 (diff)
downloadaoc-10b60709e3b18bcdd85d3c3d708fc55b0b2a29c7.tar.gz
aoc-10b60709e3b18bcdd85d3c3d708fc55b0b2a29c7.zip
Day 11, part 2
-rw-r--r--2017/src/bin/day11.rs19
1 files changed, 18 insertions, 1 deletions
diff --git a/2017/src/bin/day11.rs b/2017/src/bin/day11.rs
index 174f950..dd46fde 100644
--- a/2017/src/bin/day11.rs
+++ b/2017/src/bin/day11.rs
@@ -4,6 +4,10 @@ use std::io::{self, Read};
 struct Hex(i32, i32, i32);
 
 impl Hex {
+    fn dist(self) -> i32 {
+        (self.0.abs() + self.1.abs() + self.2.abs()) / 2
+    }
+
     fn mov(self, dir: &str) -> Self {
         let Hex(x, y, z) = self;
         match dir {
@@ -23,7 +27,19 @@ fn solve1(input: &str) -> i32 {
     for dir in input.split(',') {
         hex = hex.mov(dir);
     }
-    (hex.0.abs() + hex.1.abs() + hex.2.abs()) / 2
+    hex.dist()
+}
+
+fn solve2(input: &str) -> i32 {
+    let mut hex = Hex(0, 0, 0);
+    let mut max = 0;
+    for dir in input.split(',') {
+        hex = hex.mov(dir);
+        if hex.dist() > max {
+            max = hex.dist()
+        }
+    }
+    max
 }
 
 fn main() {
@@ -31,6 +47,7 @@ fn main() {
     io::stdin().read_to_string(&mut input).unwrap();
 
     println!("Part 1: {}", solve1(input.trim()));
+    println!("Part 2: {}", solve2(input.trim()));
 }
 
 #[test]
gmsg'> 2020-03-03Don't use $ inside $(())June McEnroe 2020-03-03Remove setoptJune McEnroe 2020-03-03Use getopts in shell scriptsJune McEnroe WTF why did no one tell me about this? 2020-02-27Style %T outside of Rs in italicJune McEnroe 2020-02-26Add Fierce Femmes and Notorious LiarsJune McEnroe 2020-02-23Add This Is How You Lose the Time WarJune McEnroe 2020-02-22Add See Ya LaterJune McEnroe 2020-02-20Remove wiki scriptJune McEnroe Wikipedia seems to have removed the one-sentence extracts from the opensearch results. Too bad. It's not a wiki script, what we need is a command that fetches single-sentence summaries of articles on Wikipedia. 2020-02-19Add The Obelisk GateJune McEnroe 2020-02-17Add Four Tet — HandsJune McEnroe One from the cafe that caught my attention. 2020-02-12Simplify macOS notify-sendJune McEnroe 2020-02-12Add imbox and notemap to pageJune McEnroe 2020-02-12Collapse simple linksJune McEnroe 2020-02-12Move catgirl up the pageJune McEnroe 2020-02-12Update catgirl pty grabJune McEnroe 2020-02-12Link to cgit /about pages where appropriateJune McEnroe 2020-02-11Separate LINKS from BINS for html to workJune McEnroe 2020-02-11Add margin to Bl-bullet itemsJune McEnroe 2020-02-10Match URLs inside parens or with paired parens insideJune McEnroe 2020-02-10Duplicate effective URL before passing it back to curlJune McEnroe Apparently sometimes it didn't like receiving its own internal storage to parse again. Understandable. 2020-02-09Add To Be Taught, If FortunateJune McEnroe 2020-02-04Add The Future of Another TimelineJune McEnroe Wow. One of the best I've read. 2020-01-31Reorganize the Makefile for the umpteenth timeJune McEnroe Broke out LDLIBS for each bin, and made everything more uniform. 2020-01-28Change scout sensitivity to 1.4June McEnroe idk it seems to work. 2020-01-28Import shows.txtJune McEnroe