주어진 matrix를 인형뽑기 판이라 가정하고
인형뽑기 기계의 움직임이 주어졌을 경우,
게임 진행 결과를 출력하라
https://programmers.co.kr/learn/courses/30/lessons/64061
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를 활용하라
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을 활용하여 전보다 더 깔끔한 코드를 제작함.