Part 1 & 2


In [1]:
directions = Dict(
    "n" =>[ 0, 1,-1],
    "s" =>[ 0,-1, 1],
    "ne"=>[ 1, 0,-1],
    "sw"=>[-1, 0, 1],    
    "se"=>[ 1,-1, 0],
    "nw"=>[-1, 1, 0]
)

function distance(steps)
    m = 0
    p = [0, 0, 0]
    for s in steps
        p += directions[s]
        m = max(m, sum(abs, p))
    end
    (div(sum(abs, p), 2), div(m, 2))
end


Out[1]:
distance (generic function with 1 method)

In [2]:
distance(["ne", "ne", "ne"])


Out[2]:
(3, 3)

In [3]:
distance(["ne","ne","sw","sw"])


Out[3]:
(0, 2)

In [4]:
open("inputs/day11.txt") do fd
    steps = split(strip(readstring(fd)), ',')
    distance(steps)
end


Out[4]:
(824, 1548)

In [ ]: