Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- parsingData(data) {
- stacksLen := RegExMatch(data, "\R") // 4
- stacks := []
- Loop, % stacksLen
- stacks.push([])
- For k, v in arr := StrSplit(data, "`n") {
- if (v ~= "^ 1")
- continue
- Loop, % stacksLen {
- item := SubStr(v, 1 + (A_Index - 1) * 4, 4)
- item := RegExReplace(item, "\W")
- if item
- stacks[A_Index].InsertAt(1, item)
- }
- }
- return stacks
- }
- ProcessFile(fileName) {
- FileRead, data, % fileName
- arrData := StrSplit(data, "`n`n")
- stacks := parsingData(arrData[1])
- For k, v in StrSplit(arrData[2], "`n") {
- RegExMatch(v, "^\D+(\d+)\D+(\d+)\D+(\d+)", m)
- arr := []
- Loop, % m1
- arr.InsertAt(1, stacks[m2].Pop())
- Loop, % m1
- stacks[m3].Push(arr[A_Index])
- }
- output := ""
- For k, v in stacks
- output .= stacks[k].Pop()
- return output
- }
- MsgBox, % ProcessFile(A_ScriptDir "\aoc5.txt")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement