challenge1.lua (647B)
1 #!/usr/bin/lua 2 3 -- convert the silly input format into something more useful 4 iadded = {} 5 6 i = 1 7 for line in io.lines('challenge2input.txt') do 8 addedjs = {} 9 for j=1,#line do 10 if string.sub(line, j, j) == 'X' then 11 table.insert(addedjs, j) 12 end 13 end 14 iadded[i] = addedjs 15 i = i + 1 16 end 17 18 function score (i) 19 addedjs = iadded[i] 20 s = #addedjs 21 for ji,j in ipairs(addedjs) do 22 s = s + score(j) 23 end 24 return s 25 end 26 27 scores = {} 28 29 for i=1,#iadded do 30 s = score(i) 31 table.insert(scores, s) 32 end 33 34 table.sort(scores) 35 36 print( 37 string.format( 38 "%d%d%d", 39 scores[#scores], 40 scores[#scores - 1], 41 scores[#scores - 2] 42 ) 43 )