challenges

my solutions to various "programming challenge" problems
git clone https://wehaveforgeathome.hates.computer/challenges.git
Log | Files | Refs | LICENSE

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 )