diff options
author | Nat Lasseter <user@4574.co.uk> | 2018-12-03 12:14:31 +0000 |
---|---|---|
committer | Nat Lasseter <user@4574.co.uk> | 2018-12-03 12:14:31 +0000 |
commit | ac0e849c119cc3cd9709e57521365dd6dc5215a6 (patch) | |
tree | 70bc95efd57ffda171c2cb1e6235b44230be0a29 /day01/part2 | |
parent | c13a36eb26055d80749a862d302c208898fe049a (diff) |
Replace list with array. Obvious optimisation.
Diffstat (limited to 'day01/part2')
-rwxr-xr-x | day01/part2 | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/day01/part2 b/day01/part2 index d48de47..506d995 100755 --- a/day01/part2 +++ b/day01/part2 @@ -3,15 +3,21 @@ input = $stdin.readlines.map(&:to_i) lf = 0 -freq = [0] +posifreq = [true] +negifreq = [] loop do input.each do |i| lf += i - if freq.include?(lf) + if lf >= 0 && posifreq[lf] || + lf < 0 && negifreq[-lf] puts lf exit end - freq << lf + if lf >= 0 + posifreq[lf] = true + else + negifreq[-lf] = true + end end end |