The workshop has an assembly line that helps the elves put together the gift boxes to be used on the big day.
Gifts boxes contain:
a base _ (an underscore)
sides | | (a pipe, whitespace, a pipe)
a lid ¯ (a macron)
a bow * (an asterix)
Assembling a gift box MUST happen in this order:
Stage 1: _ (base)
Stage 2: _ | | (base + sides)
Stage 3: _ | | ¯ (base + sides + lid)
Stage 4: _ | | ¯ * (base + sides + lid + bow)
You will need to inspect each box part one by one and build the boxes in the order of construction. For example, if you find a bow * in the first index it would need to be discarded. If you make it to stage 3 and then find a base _ you would ignore it and continue with the partial box you were building. Finding the 'wrong' part doesn't discard the box you're building.
Result should be the number of completed boxes.
Technically speaking, a completed box would look like this:
boxparts = [ # remember Python ignores anything after # so you CAN paste this into your editor!
'| |', # can't start with sides, discard:
'_', # a base! great, keep it: _
'*', # oh no, a bow, ignore it: _
'| |', # sides - hurrah! _ | |
'_', # a base??? noooo! start again: _
'| |', # two sides! great, keep going: _ | |
'¯', # a lid... box is looking good: _ | | ¯
'*' # phew - a bow! We made a box: _ | | ¯ *
]
boxparts = ['| |', '_', '*', '| |', '| |', '*', '¯', '¯', '¯', '*', '¯', '_', '_', '¯', '*', '| |', '¯', '¯', '¯', '_', '*', '_', '*', '¯', '_', '*', '¯', '*', '_', '¯', '*', '¯', '| |', '| |', '_', '¯', '¯', '_', '*', '¯', '_', '¯', '| |', '| |', '*', '¯', '_', '| |', '*', '¯', '| |', '¯', '| |', '*', '¯', '| |', '*', '¯', '_', '*', '| |', '| |', '_', '_', '_', '¯', '¯', '*', '*', '¯', '¯', '¯', '¯', '¯', '*', '¯', '*', '*', '_', '*', '¯', '_', '_', '¯', '¯', '| |', '*', '¯', '_', '*', '| |', '¯', '*', '| |', '¯', '| |', '¯', '¯', '*', '| |', '_', '| |', '_', '¯', '| |', '¯', '_', '*', '*', '_', '_', '_', '_', '¯', '_', '| |', '_', '*', '| |', '*', '¯', '| |', '| |', '*', '| |', '¯', '| |', '| |', '¯', '¯', '| |', '| |', '_', '*', '_', '| |', '_', '| |', '¯', '_', '¯', '| |', '¯', '*', '| |', '*', '| |', '*', '_', '*', '¯', '*', '¯', '| |', '*', '| |', '_', '| |', '*', '| |', '| |', '¯', '*', '*', '| |', '_', '*', '| |', '_', '¯', '| |', '*', '¯', '¯', '*', '¯', '| |', '¯', '¯', '| |', '¯', '¯', '¯', '_', '_', '| |', '*', '*', '| |', '¯', '| |', '¯', '¯', '*', '_', '| |', '_', '¯', '| |', '| |', '¯', '¯', '¯', '_', '*', '| |', '| |', '*', '¯', '_', '*', '¯', '| |', '¯', '¯', '¯', '| |', '¯', '¯', '_', '_', '*', '_', '*', '*', '¯', '*', '*', '| |', '| |', '¯', '_', '_', '_', '¯', '*', '_', '| |', '¯', '| |', '*', '_', '| |', '*', '_', '| |', '| |', '_', '¯', '*', '| |', '| |', '¯', '| |', '| |', '_', '| |', '¯', '*', '| |', '*', '*', '¯', '¯', '¯', '¯', '| |', '¯', '_', '| |', '| |', '*', '_', '| |', '*', '¯', '_', '| |', '| |', '*', '| |', '_', '| |', '| |', '*', '¯', '_', '_', '*', '_', '*', '¯', '¯', '_', '*', '*', '_', '¯', '| |', '*', '¯', '*', '*', '¯', '*', '_', '| |', '| |', '¯', '*', '*', '_', '¯', '_', '| |', '_', '*', '¯', '_', '_', '_', '| |', '¯', '| |', '_', '*', '*', '¯', '| |', '*', '| |', '| |', '¯', '| |', '*', '_', '¯', '| |', '¯', '| |', '| |', '_', '*', '¯', '*', '¯', '¯', '*', '¯', '¯', '| |', '| |', '_', '*', '_', '¯', '*', '_', '_', '| |', '| |', '¯', '¯', '_', '*', '| |', '*', '_', '¯', '_', '| |', '| |', '_', '¯', '¯', '_', '| |', '*', '| |', '*', '_', '_', '*', '_', '¯', '¯', '¯', '_', '¯', '¯', '| |', '*', '¯', '¯', '¯', '_', '_', '| |', '*', '*', '*', '_', '| |', '| |', '*', '*', '| |', '_', '¯', '*', '_', '¯', '_', '¯', '¯', '_', '_', '_', '*', '_', '¯', '| |', '_', '_', '| |', '*', '*', '*', '¯', '*', '_', '_', '¯', '| |', '*', '*', '¯', '¯', '| |', '¯', '_', '*', '¯', '*', '_', '| |', '*', '¯', '¯', '| |', '¯', '| |', '_', '_', '¯', '| |', '| |', '*', '¯', '*', '¯', '*', '| |', '_', '| |', '| |', '| |', '_', '| |', '| |', '¯', '¯', '*', '| |', '_', '¯', '| |', '*', '*', '| |', '*', '¯', '| |', '_', '*', '¯', '| |', '_', '¯', '*', '*', '*', '*', '*', '| |', '*', '| |', '| |', '_', '*', '| |', '*', '¯', '_', '¯', '¯', '| |', '| |', '| |', '| |', '*', '_', '_', '¯', '*', '| |', '_', '_', '¯', '*', '*', '*', '| |', '_', '| |', '¯', '*', '¯', '_', '| |', '| |', '¯', '_', '*', '¯', '¯', '| |', '¯', '_', '¯', '¯', '| |', '¯', '_', '| |', '*', '_', '_', '*', '_', '_', '*', '¯', '| |', '*', '| |', '*', '*', '¯', '*', '_', '¯', '*', '*', '*', '*', '*', '| |', '| |', '| |', '*', '¯', '¯', '¯', '_', '*', '_', '¯', '*', '¯', '*', '| |', '¯', '¯', '*', '*', '| |', '*', '*', '| |', '¯', '| |', '¯', '_', '_', '| |', '¯', '| |', '*', '_', '| |', '¯', '*', '¯', '_', '_', '¯', '¯', '_', '¯', '¯', '*', '| |', '_', '_', '| |', '*', '*', '*', '¯', '¯', '*', '*', '¯', '¯', '*', '¯', '| |', '*', '*', '*', '| |', '¯', '¯', '*', '*', '*', '| |', '| |', '| |', '¯', '_', '¯', '_', '| |', '| |', '¯', '| |', '¯', '| |', '*', '_', '_', '¯', '*', '| |', '¯', '¯', '*', '*', '_', '¯', '| |', '_', '| |', '_', '*', '_', '| |', '¯', '¯', '*', '_', '¯', '_', '*', '| |', '*', '| |', '_', '_', '_', '_', '¯', '_', '*', '_', '*', '¯', '_', '¯', '| |', '¯', '| |', '¯', '*', '_', '*', '_', '*', '_', '*', '¯', '*', '| |', '*', '*', '*', '_', '_', '¯', '¯', '_', '¯', '¯', '_', '_', '_', '| |', '| |', '| |', '_', '¯', '¯', '¯', '*', '*', '_', '*', '| |', '_', '¯', '*', '¯', '_', '*', '*', '_', '*', '*', '*', '_', '| |', '_', '_', '*', '¯', '¯', '¯', '¯', '¯', '*', '¯', '| |', '¯', '*', '*', '¯', '| |', '| |', '| |', '_', '¯', '| |', '*', '_', '| |', '_', '*', '¯', '*', '_', '*', '¯', '| |', '*', '*', '¯', '| |', '_', '| |', '¯', '_', '_', '| |', '¯', '*', '*', '*', '| |', '_', '¯', '*', '¯', '¯', '_', '*', '¯', '| |', '_', '| |', '*', '*', '| |', '¯', '| |', '*', '| |', '_', '¯', '*', '*', '| |', '¯', '¯', '*', '| |', '¯', '¯', '_', '_', '_', '| |', '| |', '*', '¯', '_', '_', '| |', '*', '_', '*', '*', '_', '_', '¯', '| |', '*', '_', '| |', '*', '_', '¯', '| |', '*', '¯', '*', '_', '*', '_', '*', '_', '| |', '_', '_', '*', '_', '*', '¯', '¯', '_', '*', '| |', '¯', '| |', '_', '| |', '| |', '¯', '*', '*', '¯', '_', '¯', '*', '¯', '¯', '| |', '¯', '*', '¯', '*', '*', '| |', '_', '¯', '*', '| |', '_', '¯', '¯', '_', '| |', '_', '*', '| |', '_', '*', '| |', '*', '*', '*', '| |', '¯', '_', '_', '| |', '*', '_', '_', '| |', '_', '| |', '| |', '| |', '*', '_', '| |', '¯', '¯', '| |', '| |', '| |', '*', '| |', '*', '| |', '| |', '| |', '| |', '*', '¯', '_', '*', '¯', '¯', '| |', '¯', '*', '¯', '*', '¯', '_', '*', '| |', '| |', '¯', '| |', '_', '_', '¯', '| |', '*', '| |', '*', '_', '| |', '| |', '¯', '_', '| |', '_', '| |', '_', '*', '*', '| |', '¯', '_', '| |', '| |', '¯', '*', '_', '| |', '¯', '_', '*', '| |', '*', '_', '| |', '*', '*', '| |', '_', '| |', '*', '| |', '| |', '_', '_', '¯', '_', '| |', '¯', '*', '¯', '*', '| |', '| |', '| |', '_', '*', '*', '*', '*', '*', '| |', '| |', '| |', '_', '*', '| |', '_', '*', '| |', '_', '| |', '*', '| |', '_', '| |', '¯', '*', '¯', '¯', '| |', '¯', '*', '¯', '_', '_', '_', '_', '¯', '| |', '¯', '¯', '¯', '_', '| |', '*', '_', '¯', '*', '¯', '_', '¯', '*', '¯', '*', '*', '*', '¯', '¯', '*', '_', '_', '*', '_', '| |', '¯', '| |', '*', '| |', '*', '| |', '*', '*', '| |', '*', '*', '| |', '| |', '_', '*', '_', '| |', '| |', '*', '_', '*', '_', '| |', '*', '*', '| |', '¯', '*', '*', '¯', '| |', '*', '| |', '| |', '_', '| |', '_', '_', '_', '¯', '*', '*', '*', '*', '¯', '*', '*', '| |', '*', '| |', '¯', '| |', '| |', '_', '¯', '| |', '| |', '*', '_', '| |', '*', '*', '*', '| |', '| |', '¯', '| |', '¯', '¯', '_', '¯', '| |', '¯', '*', '| |', '_', '_', '*', '_', '*', '*', '¯', '| |', '| |', '_', '¯', '_', '¯', '| |', '¯', '¯', '| |', '| |', '| |', '_', '_', '¯', '| |', '*', '¯', '| |', '¯', '_', '*', '_', '¯', '*', '*', '_', '*', '¯', '_', '*', '*', '_', '_', '¯', '¯', '_', '¯', '¯', '*', '*', '| |', '¯', '¯', '*', '¯', '¯', '¯', '¯', '*', '| |', '_', '¯', '*', '¯', '¯', '_', '| |', '*', '¯', '_', '_', '*', '¯', '*', '*', '*', '| |', '| |', '*', '¯', '| |', '| |', '*', '| |', '*', '*', '¯', '_', '*', '¯', '*', '| |', '_', '_', '*', '*', '¯', '_', '¯', '*', '| |', '_', '| |', '_', '¯', '*', '*', '_', '¯', '*', '| |', '¯', '_', '*', '*', '| |', '*', '_', '¯', '¯', '*', '*', '¯', '| |', '¯', '¯', '¯', '_', '*', '| |', '¯', '| |', '_', '*', '_', '*', '*', '| |', '*', '| |', '_', '| |', '| |', '¯', '_', '¯', '| |', '*', '¯', '| |', '_', '| |', '¯', '¯', '*', '¯', '¯', '_', '_', '*', '*', '_', '¯', '_', '*', '_', '¯', '_', '¯', '_', '| |', '*', '*', '¯', '*', '| |', '| |', '*', '| |', '*', '*', '| |', '*', '| |', '*', '_', '*', '_', '¯', '¯', '_', '¯', '¯', '| |', '*', '| |', '¯', '| |', '¯', '_', '¯', '_', '| |', '_', '¯', '_', '_', '_', '*', '*', '_', '*', '*', '_', '*', '| |', '| |', '¯', '¯', '¯', '_', '| |', '¯', '_', '_', '¯', '| |', '¯', '| |', '*', '_', '| |', '*', '| |', '¯', '¯', '| |', '| |', '*', '¯', '¯', '_', '¯', '_', '*', '_', '¯', '*', '| |', '_', '| |', '¯', '_', '¯', '| |', '| |', '_', '| |', '¯', '¯', '¯', '| |', '*', '| |', '¯', '¯', '*', '| |', '¯', '_', '*', '*', '| |', '*', '*', '_', '¯', '¯', '*', '| |', '_', '*', '*', '*', '¯', '¯', '*', '*', '| |', '*', '¯', '¯', '*', '*', '_', '_', '*', '_', '*', '¯', '_', '*', '_', '¯', '_', '_', '*', '| |', '¯', '¯', '| |', '| |', '¯', '*', '*', '_', '_', '*', '_', '*', '| |', '_', '*', '*', '*', '_', '| |', '*', '_', '_', '_', '_', '¯', '| |', '_', '¯', '| |', '*', '_', '¯', '| |', '_', '_', '_', '_', '_', '| |', '¯', '¯', '¯', '¯', '*', '*', '| |', '| |', '*', '¯', '*', '| |', '*', '_', '¯', '*', '| |', '_', '*', '_', '| |', '| |', '¯', '¯', '| |', '¯', '¯', '_', '| |', '_', '| |', '¯', '¯', '*', '_', '*', '_', '_', '_', '_', '*', '¯', '_', '_', '*', '*', '*', '*', '¯', '| |', '_', '| |', '*', '¯', '_', '| |', '¯', '_', '| |', '¯', '¯', '_', '_', '¯', '_', '¯', '*', '| |', '_', '¯', '*', '| |', '¯', '| |', '| |', '¯', '¯', '| |', '| |', '¯', '*', '| |', '*', '_', '*', '_', '| |', '*', '| |', '| |', '_', '_', '_', '| |', '*', '¯', '¯', '¯', '_', '*', '_', '| |', '| |', '_', '¯', '¯', '_', '*', '¯', '*', '| |', '*', '*', '_', '¯', '_', '*', '| |', '*', '_', '| |', '_', '_', '*', '*', '¯', '| |', '*', '*', '| |', '_', '¯', '| |', '| |', '_', '*', '*', '¯', '¯', '¯', '_', '| |', '| |', '_', '¯', '_', '*', '¯', '*', '¯', '*', '¯', '¯', '_', '*', '*', '*', '| |', '| |', '¯', '| |', '| |', '_', '_', '_', '¯', '| |', '*', '*', '_', '| |', '*', '¯', '| |', '_', '| |', '*', '*', '_', '*', '¯', '| |', '_', '¯', '*', '| |', '¯', '¯', '_', '_', '| |', '_', '*', '_', '¯', '_', '_', '¯', '¯', '_', '¯', '| |', '_', '¯', '_', '| |', '| |', '_', '_', '| |', '_', '_', '*', '*', '¯', '¯', '_', '*', '*', '_', '| |', '_', '*', '_', '*', '| |', '*', '¯', '*', '_', '_', '_', '| |', '| |', '_', '| |', '¯', '¯', '_', '¯', '_', '| |', '*', '_', '¯', '¯', '*', '_', '| |', '¯', '_', '*', '_', '_', '¯', '¯', '*', '| |', '_', '*', '*', '¯', '¯', '¯', '_', '¯', '| |', '| |', '*', '| |', '_', '¯', '¯', '¯', '_', '*', '¯', '| |', '_', '_', '¯', '¯', '_', '| |', '¯', '*', '*', '| |', '*', '_', '*', '*', '¯', '¯', '*', '_', '¯', '*', '_', '¯', '| |', '_', '_', '| |', '_', '¯', '| |', '_', '| |', '_', '_', '| |', '| |', '_', '_', '*', '| |', '¯', '_', '¯', '¯', '_', '¯', '| |', '¯', '| |', '_', '_', '| |', '*', '*', '*', '| |', '*', '_', '_', '_', '_', '| |', '| |', '*', '_', '*', '*', '*', '_', '| |', '| |', '_', '*', '*', '_', '*', '_', '| |', '_', '¯', '*', '*', '_', '| |', '| |', '*', '| |', '_', '¯', '| |', '*', '_', '_', '_', '| |', '| |', '_', '_', '_', '| |', '| |', '*', '*', '| |', '_', '| |', '| |', '*', '*', '*', '_', '| |', '*', '| |', '| |', '_', '*', '_', '| |', '¯', '¯', '_', '| |', '¯', '_', '¯', '_', '| |', '| |', '¯', '¯', '¯', '| |', '_', '¯', '_', '_', '| |', '_', '¯', '| |', '¯', '*', '¯', '¯', '_', '*', '| |', '_', '¯', '*', '| |', '¯', '¯', '_', '_', '¯', '_', '*', '| |', '| |', '¯', '| |', '_', '_', '_', '¯', '_', '¯', '| |', '_', '_', '_', '| |', '| |', '¯', '*', '_', '| |', '| |', '_', '*', '*', '*', '| |', '¯', '*', '*', '_', '| |', '| |', '*', '| |', '_', '| |', '| |', '| |', '¯', '¯', '¯', '¯', '_', '| |', '| |', '_', '_', '*', '| |', '¯', '¯', '| |', '_', '_', '¯', '¯', '| |', '*', '_', '*', '¯', '*', '*', '¯', '¯', '_', '*', '| |', '| |', '| |', '¯', '*', '| |', '*', '*', '¯', '_', '¯', '*', '_', '| |', '*']