Advertisement
astrosofista

AoC5b 2022

Dec 5th, 2022
382
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Autohotkey 0.85 KB | Source Code | 0 0
  1. parsingData(data) {
  2.     stacksLen := RegExMatch(data, "\R") // 4
  3.     stacks := []
  4.  
  5.     Loop, % stacksLen
  6.         stacks.push([])
  7.  
  8.     For k, v in arr := StrSplit(data, "`n") {
  9.         if (v ~= "^ 1")
  10.             continue
  11.         Loop, % stacksLen {
  12.             item := SubStr(v, 1 + (A_Index - 1) * 4, 4)
  13.             item := RegExReplace(item, "\W")
  14.             if item
  15.                 stacks[A_Index].InsertAt(1, item)
  16.         }
  17.     }
  18.  
  19.     return stacks
  20. }
  21.  
  22. ProcessFile(fileName) {
  23.     FileRead, data, % fileName
  24.  
  25.     arrData := StrSplit(data, "`n`n")
  26.     stacks := parsingData(arrData[1])
  27.  
  28.     For k, v in StrSplit(arrData[2], "`n") {
  29.         RegExMatch(v, "^\D+(\d+)\D+(\d+)\D+(\d+)", m)
  30.         arr := []
  31.         Loop, % m1
  32.             arr.InsertAt(1, stacks[m2].Pop())
  33.         Loop, % m1
  34.             stacks[m3].Push(arr[A_Index])
  35.     }
  36.  
  37.     output := ""
  38.     For k, v in stacks
  39.         output .= stacks[k].Pop()
  40.  
  41.     return output
  42. }
  43.  
  44. MsgBox, % ProcessFile(A_ScriptDir "\aoc5.txt")
  45.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement