[Programmers] 크레인 인형뽑기 게임 (Python)
5051 단어 pythonprogrammersprogrammers
문제
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이라서 그렇겠지만...
Author And Source
이 문제에 관하여([Programmers] 크레인 인형뽑기 게임 (Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@minob_b/Programmers-크레인-인형뽑기-게임-Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)