diff options
Diffstat (limited to 'challenge-117')
| -rwxr-xr-x | challenge-117/stuart-little/lua/ch-1.lua | 11 | ||||
| -rwxr-xr-x | challenge-117/stuart-little/lua/ch-2.lua | 32 |
2 files changed, 43 insertions, 0 deletions
diff --git a/challenge-117/stuart-little/lua/ch-1.lua b/challenge-117/stuart-little/lua/ch-1.lua new file mode 100755 index 0000000000..790f7332ca --- /dev/null +++ b/challenge-117/stuart-little/lua/ch-1.lua @@ -0,0 +1,11 @@ +#!/usr/bin/env lua + +-- run <script> <path-to-file> + +sm,nrln=0,0 +for ln in io.lines(arg[1]) do + nr = ln:match("[^%d]*(%d+)") + sm = sm + nr + nrln = nrln+1 +end +print(("%d"):format((nrln+1)*(nrln+2)/2 - sm)) diff --git a/challenge-117/stuart-little/lua/ch-2.lua b/challenge-117/stuart-little/lua/ch-2.lua new file mode 100755 index 0000000000..18af8844d8 --- /dev/null +++ b/challenge-117/stuart-little/lua/ch-2.lua @@ -0,0 +1,32 @@ +#!/usr/bin/env lua + +-- run <script> <number> + +memo={{''},{'R','LH'}} +function mkPaths(size) + if (tonumber(size) >= #memo) then + res = {} + for _,v in ipairs(mkPaths(size-1)) do + table.insert(res, 'R' .. v) + end + for nr = 0,size-1 do + lt = mkPaths(nr) + rt = mkPaths(size-1-nr) + for _,lft in ipairs(lt) do + for _,rght in ipairs(rt) do + table.insert(res, 'L' .. lft .. 'H' .. rght) + end + end + end + table.insert(memo,res) + end + return memo[size+1] +end + +for i = 2,arg[1] do + mkPaths(i) +end + +for _,v in ipairs(mkPaths(arg[1])) do + print(v) +end |
