바구니 ⇒ stack!
moves의 원소들을 m이라고 할 때, 입력으로 주어진 board를 그대로 사용하게 된다면, m번째 위치의 원소를 매번 조회하고, 인형을 뽑게 됐을 경우의 처리 등이 코드적으로 비효율적
따라서 move마다 board에서 m번에 위치한 인형들을 crane이라는 list로 생성하여 사용한다.
이 때, crane의 가장 윗부분에 있는 인형을 뽑기 위해 for loop을 이용
def solution(board, moves):
answer = 0
basket = []
width = len(board)
for m in moves:
crane = [ board[x][m-1] for x in range(width) ]
for i in range(width):
if crane[i] != 0:
board[i][m-1] = 0
if not basket or crane[i] != basket[-1]:
basket.append(crane[i])
else:
basket.pop(-1)
answer += 2
break
return answer