문제 참고
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드 작성
def solution(board, moves): answer = 0 before = 0 box = [] for move in moves: for i in range(len(board)): if board[i][move - 1] != 0: box.append(board[i][move - 1]) board[i][move - 1] = 0 break if len(box) >= 2: if box[-1] == box[-2]: box = box[:-2] answer += 2 else: pass return answer
moves에 저장된 움직임대로 board에 있는 인형을 꺼내면 된다.
box는 인형을 꺼내고 넣는 스택이다.
이 때 해당 칸이 비어있다면 box에 넣을 필요가 없다.
만약 box의 크기가 2이상일 경우 인형이 겹치는지 판단하고 겹치면 제거한다.
