1. board의 1 번째 배열부터 moves의 n번째 위치에 있는 지 확인하면 될 것이다
2. 하나씩 넘겨보면서 확인해보다가 0이 아닌 값이 들어있으면 바구니에 하나씩 append한다
이 때, 바구니에 값이 하나라도 들어있고, 가장 마지막 값이 지금 넣으려는 값과 동일하다면 append 대신 기존에 있던 값을 pop한다
그 후 result의 값을 1 증가시킨다
3. 전체를 돌아봤는데도 board의 현재 위치의 move자리에 없다면 append하지 않는다
코드 작성
def solution(board, moves):
answer = 0
# 바구니 배열로 선언
basket = []
# 움직인 위치에서 board 한 층 씩 살펴보며 0이 아니면 바구니에 담기
for m in moves:
for bo in board:
if bo[m-1] != 0:
basket.append(bo[m-1])
bo[m-1] = 0
break
# 바구니에 담긴 전체 배열을 무한반복시키며 인형을 없앨 수 없을 때까지 반복
# count를 통해 인형이 사라지지 않는다면 반복문을 끝내고 결과를 출력
while True:
count = 0
for i in range(1, len(basket)):
if basket[i] == basket[i-1]:
answer += 2
count += 1
basket.pop(i)
basket.pop(i-1)
break
if count == 0:
break
return answer