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

bye9·2021년 1월 26일
0

알고리즘(코테)

목록 보기
25/130

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


알고리즘 분류

  • 스택

문제풀이

각 크레인 번호에서 위에서부터 0인지 아닌지 체크해서 0이 아니면
stack리스트에 넣어준다.

리스트에 2개 이상 원소가 존재하면 뽑아내고 비교해서 같으면 cnt+2해주고, 다르면 다시 원상복귀
ex)
[4]

[4, 3]

[4, 3, 1]

[4, 3, 1, 1]

[4, 3, 3]

[4, 2]

[4, 2, 4]

소스코드

def solution(board, moves):
    stack=[]
    cnt=0
    for i in moves:
        for j in range(len(board)):
            if board[j][i-1]!=0:
                stack.append(board[j][i-1])
                board[j][i-1]=0
                if len(stack)>=2:
                    a=stack.pop()
                    b=stack.pop()
                    if a==b:
                        cnt+=2
                    else:
                        stack.append(b)
                        stack.append(a)
                break
                
    return cnt

0개의 댓글