728x90
📌 풀이
스택을 이용해서 풀었다. 스택이란 책 쌓기를 생각하면 된다. 가장 먼저 들어온 것이 가장 아래 쌓이고 가장 늦게 들어온 것이 가장 위에 쌓여 pop 즉 빼낼 때 가장 먼저 나가게 되는 Last In First Out(LIFO) 형태이다.
2차원 배열을 활용하여 윗줄부터 move 즉 뽑기 기계의 위치에서 하나씩 내려가며 0이 아닌 즉 인형이 있을 때 basket 안에 차례차례 인형을 넣고 2개의 인형이 중복된다면 del basket [-2], del basket [-1]을 통해 마지막 2개를 지워주고 answer를 2개 늘려준다.
풀이 코드
def solution(board, moves):
basket = []
answer = 0
for move in moves:
for column in board:
if column[move - 1] != 0:
basket.append(column[move - 1])
if len(basket) > 1:
if basket[-2] == basket[-1]:
del basket[-2]
del basket[-1]
answer += 2
column[move - 1] = 0
break
return answer
'Algorithm' 카테고리의 다른 글
[파이썬] 프로그래머스 - 완주하지 못한 선수 (0) | 2022.03.27 |
---|---|
[코틀린] 프로그래머스 64061(크레인 인형뽑기 게임) (0) | 2022.01.19 |
[코틀린] 프로그래머스 42840(모의고사) (0) | 2022.01.19 |
[파이썬] 프로그래머스 42840(모의고사) (0) | 2022.01.19 |
백준 알고리즘 파이썬(Python) 1009번 분산처리 (0) | 2022.01.05 |