<문제>
https://programmers.co.kr/learn/courses/30/lessons/64061?language=python
<풀이>
def solution(board, moves):
answer = 0
stack = [] # 바구니 생성
for i in moves : # 몇번째 열을 뽑을 것인가
for j in range(len(board)): # 맨위에 인형을 뽑아야 하므로 인형이 몇개가 들어가있는가 판단
if board[j][i-1] != 0 : # 만약 인형이 들어가 있다면
if len(stack) == 0 : # 바구니에 아무것도 없으면
stack.append(board[j][i-1]) # 넣는다
board[j][i-1] = 0 # 넣고 원래 board에 있던 값 0으로 변경
elif stack[-1] == board[j][i-1] : # 다음 넣을 인형과 바구니에 있는 인형 비교
board[j][i-1] = 0 # 같으면 board에 있던 값 0으로 변경
stack.pop() # 같으므로 바구니에 있던 인형 터트림
answer += 2 # 2개를 터트리므로 +2
else: # 넣을 인형이 바구니 맨 위에 있는 인형과 다른 경우
stack.append(board[j][i-1]) # 넣는다
board[j][i-1] = 0 # 넣고 원래 board에 있던 값 0으로 변경
break # 한번 뽑으면 break
return answer
접근법이 생각나지 않아서 한참을 고민했다 알고리즘 공부가 많이 필요하다
1시간 반 소요