본문 바로가기
Algorithm/프로그래머스

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

by 2HS 2022. 3. 16.

https://programmers.co.kr/learn/courses/30/lessons/64061

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[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] 4

programmers.co.kr

 

def solution(board, moves):
    stack = []
    result = 0
    for x in moves:
        for i in range(len(board)):
            target = board[i][x-1]
            if target != 0:
                board[i][x-1] = 0
                if stack and stack[-1] == target:
                    stack.pop()
                    result += 2
                else:
                    stack.append(target)
                break
    return result

 

구현, 자료구조(스택)

1. moves를 탐색

    - 해당 j좌표에서 i를 증가해가면서 0이 아닌 값을 찾고, board값을 0으로 초기화

    - 스택의 top (stack[-1])이 해당 값과 같다면 pop, result += 2

    - 아니라면 스택에 값 append

2. return result