summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorJune McEnroe <programble@gmail.com>2016-12-04 18:50:15 -0500
committerJune McEnroe <programble@gmail.com>2016-12-04 18:50:15 -0500
commitf52473c78bb1eca124aa211b614c8fbfe7bf4b83 (patch)
tree2aae6933e48db2ca30bb56e98d279d55d59f2b79
parentDay 4 part 2 (diff)
downloadaoc-f52473c78bb1eca124aa211b614c8fbfe7bf4b83.tar.gz
aoc-f52473c78bb1eca124aa211b614c8fbfe7bf4b83.zip
Use math to rotate in day 4
-rw-r--r--src/bin/day04.rs13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/bin/day04.rs b/src/bin/day04.rs
index c6a9709..8e724c2 100644
--- a/src/bin/day04.rs
+++ b/src/bin/day04.rs
@@ -64,15 +64,12 @@ impl Room {
 }
 
 fn rotate(c: char, n: u32) -> char {
-    let mut c = c;
-    for _ in 0..n {
-        c = match c {
-            'a' ... 'y' => (c as u8 + 1) as char,
-            'z' => 'a',
-            _ => panic!("cannot rotate {}", c),
-        }
+    let c = c as u8 + (n % 26) as u8;
+    if c > b'z' {
+        (c - 26) as char
+    } else {
+        c as char
     }
-    c
 }
 
 fn solve1(input: &str) -> u32 {