Day 5: Add Lua solution
This commit is contained in:
parent
5fb0db17fb
commit
406e1fc632
2 changed files with 77 additions and 0 deletions
33
05/solution_1.lua
Normal file
33
05/solution_1.lua
Normal file
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/env lua
|
||||
|
||||
map = {}
|
||||
|
||||
for line in io.lines("input.txt") do
|
||||
x0, y0, x1, y1 = string.match(line, "(%d+),(%d+) .+ (%d+),(%d+)")
|
||||
x0 = tonumber(x0) x1 = tonumber(x1) y0 = tonumber(y0) y1 = tonumber(y1)
|
||||
|
||||
if x0 == x1 then
|
||||
map[x0] = map[x0] or {}
|
||||
if y0 > y1 then step = -1 else step = 1 end
|
||||
for y = y0, y1, step do
|
||||
map[x0][y] = (map[x0][y] or 0) + 1
|
||||
end
|
||||
elseif y0 == y1 then
|
||||
if x0 > x1 then step = -1 else step = 1 end
|
||||
for x = x0, x1, step do
|
||||
map[x] = map[x] or {}
|
||||
map[x][y0] = (map[x][y0] or 0) + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
intersections = 0
|
||||
for _, col in pairs(map) do
|
||||
for _, f in pairs(col) do
|
||||
if f > 1 then
|
||||
intersections = intersections + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
print("Answer:", intersections)
|
44
05/solution_2.lua
Normal file
44
05/solution_2.lua
Normal file
|
@ -0,0 +1,44 @@
|
|||
#!/usr/bin/env lua
|
||||
|
||||
map = {}
|
||||
|
||||
for line in io.lines("input.txt") do
|
||||
x0, y0, x1, y1 = string.match(line, "(%d+),(%d+) .+ (%d+),(%d+)")
|
||||
x0 = tonumber(x0) x1 = tonumber(x1) y0 = tonumber(y0) y1 = tonumber(y1)
|
||||
|
||||
if y0 > y1 then ystep = -1 else ystep = 1 end
|
||||
if x0 > x1 then xstep = -1 else xstep = 1 end
|
||||
|
||||
if x0 == x1 then
|
||||
map[x0] = map[x0] or {}
|
||||
for y = y0, y1, ystep do
|
||||
map[x0][y] = (map[x0][y] or 0) + 1
|
||||
end
|
||||
elseif y0 == y1 then
|
||||
for x = x0, x1, xstep do
|
||||
map[x] = map[x] or {}
|
||||
map[x][y0] = (map[x][y0] or 0) + 1
|
||||
end
|
||||
else
|
||||
x = x0 y = y0
|
||||
while x ~= x1 and y ~= y1 do
|
||||
map[x] = map[x] or {}
|
||||
map[x][y] = (map[x][y] or 0) + 1
|
||||
x = x + xstep
|
||||
y = y + ystep
|
||||
end
|
||||
map[x] = map[x] or {}
|
||||
map[x][y] = (map[x][y] or 0) + 1
|
||||
end
|
||||
end
|
||||
|
||||
intersections = 0
|
||||
for _, col in pairs(map) do
|
||||
for _, f in pairs(col) do
|
||||
if f > 1 then
|
||||
intersections = intersections + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
print("Answer:", intersections)
|
Loading…
Reference in a new issue