알고리즘

[알고리즘] 프로그래머스 크레인 인형뽑기 게임

오승미 2022. 3. 4. 23:23

✔️ code

 

def solution(board, moves):
    answer = 0
    dolls=[]    
    
    for i in moves:
        for j in range(len(board)):
            if board[j][i-1]!=0: #만약 인형이 있다면,
                dolls.append(board[j][i-1]) #stack 에 추가한다.
                board[j][i-1]=0
                
                if len(dolls)>=2:   #stack의 길이가 2이상이면,
                    if dolls[-1]==dolls[-2]:    #원소 2개를 비교한다.
                        answer+=2
                        #비교한 원소가 같다면 제거한다.
                        dolls.pop(-1)   
                        dolls.pop(-1)
                break
    return answer

 

 

>>>

 

input 배열이 [[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]] 였는데,

행과 열을 반대로 생각해서 처음에 애를 많이 먹었던 문제다.

알고보니 아래 방식처럼 생각해야 했던 것인데 이것 때문에 이해를 못했다니 좀 허무하기도 했다.

00000

00103

02501

42442

35131