Day 11: Hex
This commit is contained in:
parent
ba23247555
commit
2e2bad9f57
62
11dec/main.go
Normal file
62
11dec/main.go
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
var moves []string = parseInput()
|
||||||
|
fmt.Println(moves)
|
||||||
|
x, y, z := 0, 0, 0
|
||||||
|
for _, m := range moves {
|
||||||
|
x, y, z = move(x, y, z, m)
|
||||||
|
fmt.Println(x, y, z)
|
||||||
|
}
|
||||||
|
fmt.Println("Result:", max(max(abs(x), abs(y)), abs(z)))
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseInput() []string {
|
||||||
|
sc := bufio.NewScanner(os.Stdin)
|
||||||
|
sc.Scan()
|
||||||
|
return strings.Split(sc.Text(), ",")
|
||||||
|
}
|
||||||
|
|
||||||
|
func move(x, y, z int, m string) (int, int, int) {
|
||||||
|
switch m {
|
||||||
|
case "n":
|
||||||
|
y++
|
||||||
|
z--
|
||||||
|
case "ne":
|
||||||
|
x++
|
||||||
|
z--
|
||||||
|
case "se":
|
||||||
|
x++
|
||||||
|
y--
|
||||||
|
case "s":
|
||||||
|
y--
|
||||||
|
z++
|
||||||
|
case "sw":
|
||||||
|
x--
|
||||||
|
z++
|
||||||
|
case "nw":
|
||||||
|
x--
|
||||||
|
y++
|
||||||
|
}
|
||||||
|
return x, y, z
|
||||||
|
}
|
||||||
|
|
||||||
|
func abs(n int) int {
|
||||||
|
if n > 0 {
|
||||||
|
return n
|
||||||
|
}
|
||||||
|
return -n
|
||||||
|
}
|
||||||
|
func max(a, b int) int {
|
||||||
|
if a > b {
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user