[프로그래머스] 크레인 인형뽑기 게임

섬섬's 개발일지·2022년 2월 15일
0

프로그래머스

목록 보기
20/50

문제

게임 화면의 격자의 상태가 담긴 2차원 배열 board와 인형을 집기 위해 크레인을 작동시킨 위치가 담긴 배열 moves가 매개변수로 주어질 때, 그레인을 모두 작동시킨 후 터트려져 사라진 인형의 개수를 return 하도록 solution 함수를 완성해주세요.

제한사항

  • board 배열은 2차원 배열로 크기는 '5x5' 이상 '30x30' 이하입니다.
  • board의 각 칸에는 0 이상 100 이하인 정수가 담겨있습니다.
    • 0은 빈칸을 나타냅니다.
    • 1~100의 각 숫자는 각기 다른 인형의 모양을 의미하여 같은 숫자는 같은 모양의 인형을 나타냅니다.
  • moves 배열의 크기는 1이상 1,000 이하입니다.
  • moves 배열 각 원소들의 값은 1 이상이며 board 배열의 가로 크기 이하인 자연수입니다.

풀이

stack

코드

def solution(board, moves):
    answer = 0
    row, column = len(board), len(board[0])
    maps = [[] * row for _ in range(column)]
    for i in range(column):
        for j in range(row):
            if (board[j][i] != 0):
                maps[i].append(board[j][i])
    
    basket = []
    for move in moves:
        if len(maps[move-1]) != 0:
            item = maps[move-1].pop(0)
            if len(basket) == 0 or item != basket[-1]:
                basket.append(item)
            else:
                basket.pop()
                answer += 2
    return answer
profile
섬나라 개발자

0개의 댓글