크레인 인형뽑기 게임

박고은·2023년 4월 19일
0

코딩테스트 연습

목록 보기
14/34

def solution(board, moves):
    board = list(map(list, zip(*board)))
    stack = []
    answer = 0
    
    for i in board:
        while 0 in i: i.remove(0)
        i.reverse()
        
    for m in moves:
        if not board[m-1]: break
        d = board[m-1].pop()
        if stack and d==stack[-1]:
            answer += 2
            stack.pop()
        else: stack.append(d)
        
    return answer

열마다 인형을 계산할 수 있도록 2차원 배열 90도 회전
전체 2차원 배열에서 비어있는 칸(0) 제거
인형 뽑기 기계에서 뽑아서 사라지므로 pop 사용
인형 뽑기 기계에서 pop한 인형과 뽑은 인형 배열의 마지막 인형이 일치하면, 터진 인형 카운트에 2를 더하고 마지막 인형을 뽑은 인형 배열에서 pop하여 제거
일치하지 않으면, 인형 뽑기 기계에서 뽑은 인형은 뽑은 인형 배열에 추가

0개의 댓글