[programmers] 크레인 인형뽑기 게임

데린이·2022년 4월 7일
1

주어진 matrix를 인형뽑기 판이라 가정하고
인형뽑기 기계의 움직임이 주어졌을 경우,
게임 진행 결과를 출력하라
https://programmers.co.kr/learn/courses/30/lessons/64061

22-04-07 code

def solution(board, moves):
    answer = 0
    
    dolls = []
    for m in moves:
        condition = True
        i = 0
        while(condition):
            if board[i][m-1] > 0:
                condition = False
                if len(dolls) > 0:
                    if dolls[-1] == board[i][m-1]:
                        answer += 2
                        dolls = dolls[0:-1]
                    else:
                        dolls.append(board[i][m-1])
                else:
                    dolls.append(board[i][m-1])
                board[i][m-1] = 0
            i += 1
            if i == len(board):
                condition = False

    return answer

tips.
1. for-break를 활용하라

22-04-19 code

def solution(board, moves):
    answer = 0
    extraction = [1000,1001]

    for move in moves:
        for i, brd in enumerate(board):
            doll = brd[move-1]
            if doll != 0:
                extraction.append(doll)
                while extraction[-1] == extraction[-2]:
                    answer += 2
                    extraction = extraction[0:-2]
                board[i][move-1] = 0
                break
                
    return answer

스택 전 1000,1001의 임의 숫자를 넣음으로, 스택의 길이를 확인하지 않게 만듦.
while & for-break을 활용하여 전보다 더 깔끔한 코드를 제작함.

profile
취뽀를 기원하는 취준생입니다!

0개의 댓글