logan_2023/day2/d2p2.lua

46 lines
1.1 KiB
Lua
Raw Normal View History

2023-12-04 03:13:36 -05:00
--@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)