본문 바로가기

코딩테스트/파이썬

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

728x90

문제 설명

 

 

answer는 없어진 인형의 갯수고 stack은 바구니다.

 

moves 배열의 크기만큼 for문을 반복하여 board에 인형이 없으면 continue로 스킵하고 있으면 해당 인형의 번호를 peek에 넣는다.

 

만약 바구니에 인형이 있다면 바구니의 가장 위에 있는 인형과 peek을 비교하여 같으면 pop을 하고 board의 값을 0으로 바꿔준다. 없으면 그대로 바구니에 넣고 board의 값을 0으로 바꿔준다.

 

전체 코드

 

def solution(board, moves):
    answer = 0
    stack = []
    for i in range(len(moves)):
        for j in range(len(board)):
            if(board[j][moves[i]-1] == 0):
                continue
            peek = board[j][moves[i]-1]
            if stack:
                if(peek == stack[-1]):
                    answer += 2
                    stack.pop()
                    board[j][moves[i]-1] = 0
                    break
            stack.append(peek)
            board[j][moves[i]-1] = 0
            break
    return answer
728x90
반응형