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

[[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):
    answer = 0
    basket = []
    cnt = 0
    
    for i in moves: # 열
        for j in range(len(board)):  # 행
            dall = board[j][i-1]
            
            if dall == 0:
                continue
            if dall != 0 and len(basket) == 0:
                board[j][i-1] = 0
                basket.append(dall)
                break
                
            elif dall != 0 and len(basket) != 0:
                board[j][i-1] = 0
                # 연속으로 같은 값인지 판단
                if basket[-1] == dall:
                    cnt += 2
                    basket.pop()
                else:
                    basket.append(dall)
                break

    answer = cnt                   
    return answer

스택을 이용해 현재 인형과 스택의 마지막 요소와 같은지 판단한다.

같으면 인형 2개가 터트려지고 카운트를 2올린다. 다르면 그대로 스택에 추가한다.

반응형

+ Recent posts