Mercurial > hg > aoc
view 2017/day05.d @ 5:20d440f0793e
day 5
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Thu, 07 Dec 2017 11:44:53 -0500 |
parents | |
children |
line wrap: on
line source
import std.algorithm: map; import std.array: array; import std.stdio; import std.conv: to; auto walkmaze(numType)(numType[] instructions) { auto steps = 0; auto idx = 0; while(idx >= 0 && idx < instructions.length) { auto motion = instructions[idx]; if (motion > 2) { instructions[idx]--; } else { instructions[idx]++; } idx += motion; steps++; } return steps; } void main(string[] args) { auto instructions = File(args[1]) .byLine .map!(x => to!int(x)) .array; writeln(walkmaze(instructions)); }