https://programmers.co.kr/learn/courses/30/lessons/64061
- 주어진 2차원배열을 내가 이해하기 편한 형태로 변환
- move에 따라 바구니에 인형 append
- 같은 인형 2개가 겹쳐있으면 슬라이싱, cnt += 2
def solution(board, moves):
basket = []
cnt = 0
# 2차원 배열 변환 후 spaces에 저장
spaces = list(map(list, zip(*board)))
for space in spaces:
space.reverse()
while 0 in space:
space.remove(0)
# moves에 따라 인형 basket에 저장
for move in moves:
# move 값에 해당하는 space에 인형이 없을 경우 예외처리
if len(spaces[move - 1]) <= 0:
continue
# basket에 인형 저장 후 space 인형 삭제
basket.append(spaces[move - 1][-1])
del spaces[move - 1][-1]
# basket에 인형 2개가 겹칠 경우
if len(basket) >= 2 and basket[-2] == basket[-1]:
basket = basket[:-2]
cnt += 2
return cnt
이번 문제는 어렵다기 보단 해결하는 과정이 재미있는 문제였다. 물론 Level 1이라서 그렇겠지만...