diff --git a/day2/d2p2.lua b/day2/d2p2.lua new file mode 100644 index 0000000..bb13b7b --- /dev/null +++ b/day2/d2p2.lua @@ -0,0 +1,46 @@ +--@name aoc2023d2p1 +--@author logan2611 +--@client + +-- Loads the input data into a table +games = string.explode("\n", string.trim(file.read("aoc2023d2input.txt"))) + +sum = 0 + +max = { + red = 12, + green = 13, + blue = 14 +} + +print(max["red"]) + +for i, v in ipairs(games) do + local isValid = true + + -- Get rid of the useless index (Lua is 1 indexed, so this works out really nicely) + local curGame = string.gsub(string.trim(v),"^Game .*: ","") + + local pulls = string.explode("; ", string.trim(curGame)) + for _, pull in ipairs(pulls) do + local blocks = string.explode(", ", string.trim(pull)) + for _, block in ipairs(blocks) do + local block_ = string.explode(" ", block) + local num = tonumber(block_[1]) + local color = block_[2] + + --print("Game "..i.." ("..pull..") "..num.." "..color) + + if num > max[color] then + print(num) + isValid = false + end + end + end + + if isValid then + sum = sum + i + end +end + +print(sum) \ No newline at end of file