Code for the Advent of Code event
aoc
advent-of-code
1#!/usr/bin/env lua
2
3local freqs = {}
4local part1 = 0
5
6for line in io.lines('input.txt') do
7 local freq = tonumber(line)
8 freqs[#freqs + 1] = freq
9 part1 = part1 + freq
10end
11
12print('Part 1: ' .. part1)
13
14local occurrences = setmetatable({}, { __index = function() return 0 end })
15occurrences[0] = 1
16local current = 0
17local ind = 1
18local found = nil
19
20while not found do
21 current = current + freqs[ind]
22 occurrences[current] = occurrences[current] + 1
23
24 if occurrences[current] > 1 then
25 found = current
26 end
27
28 ind = ind + 1
29 if ind > #freqs then ind = 1 end
30end
31
32print('Part 2: ' .. found)