본문 바로가기

알고리즘 문제풀이/프로그래머스

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


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

풀이


몇 번째 열인지 알려주고(moves 배열), 그 열의 가장 위에 있는 인형을 뽑아서 바구니에 옮긴다. 인형은 바구니에 아래서부터 차곡차곡 쌓이고 같은것이 2개 연속되면 터트린다. 바구니의 구현은 스택을 이용하면 되는데 파이썬은 그냥 리스트를 사용하면 된다. (c++은 벡터로 구현하면 된다.)

인형을 뽑았을 때 바구니의 가장 위에 있는것과 비교해서 같은거면 없애고 정답 변수에 +2를 해준다. 다른거면 그냥 인형을 바구니에 올린다.(추가한다.)

python3

def solution(board, moves):
   answer = 0; st=[]
   for x in moves:
       x-=1                        #0번 인덱스부터 사용할꺼야~
       for i in range(len(board)):
           if board[i][x]:
               if len(st)!=0 and st[-1] == board[i][x]:
                   st.pop()
                   answer+=2
               else:
                   st.append(board[i][x])
               board[i][x]=0
               break
   return answer