[프로그래머스/파이썬] 크레인 인형뽑기 게임(64061) 풀이

업데이트:



문제 정보


풀이

문제

moves 순서대로 보드에서 인형을 뽑아 바구니(stack)에 넣습니다. 바구니 맨 위 2개가 같으면 터지고 점수(터진 개수)를 누적하는 문제입니다.

코드

def solution(board, moves):
    answer = 0

    stack = []

    for move in moves:
        for i in range(len(board)):
            if board[i][move-1] != 0:
                stack.append(board[i][move-1])
                board[i][move-1] = 0
                break
        if len(stack) > 1 and stack[-1] == stack[-2]:
            stack.pop()
            stack.pop()
            answer += 2
    
    return answer

print(solution([[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]], [1,5,3,5,1,2,1,4]))

설명

move마다 해당 열을 위에서 아래로 탐색해 0이 아닌 첫 인형을 뽑아 stack에 넣습니다.

인형을 넣은 뒤 stack의 마지막 두 값이 같다면 연속으로 제거하고 answer를 2 증가시킵니다.

문제 규칙을 그대로 시뮬레이션한 구현입니다.



댓글남기기