[프로그래머스/파이썬] 크레인 인형뽑기 게임(64061) 풀이
업데이트:
문제 정보
- 문제 출처: 프로그래머스 코딩테스트 연습
- 문제 링크: 크레인 인형뽑기 게임(64061)
- 문제풀이 코드 GitHub 링크
- 풀이 언어: Python 3
풀이
문제
moves 순서대로 보드에서 인형을 뽑아 바구니(stack)에 넣습니다.
바구니 맨 위 2개가 같으면 터지고 점수(터진 개수)를 누적하는 문제입니다.
코드
def solution(board, moves):
answer = 0
stack = []
for move in moves:
for i in range(len(board)):
if board[i][move-1] != 0:
stack.append(board[i][move-1])
board[i][move-1] = 0
break
if len(stack) > 1 and stack[-1] == stack[-2]:
stack.pop()
stack.pop()
answer += 2
return answer
print(solution([[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]], [1,5,3,5,1,2,1,4]))
설명
각 move마다 해당 열을 위에서 아래로 탐색해
0이 아닌 첫 인형을 뽑아 stack에 넣습니다.
인형을 넣은 뒤 stack의 마지막 두 값이 같다면
연속으로 제거하고 answer를 2 증가시킵니다.
문제 규칙을 그대로 시뮬레이션한 구현입니다.
댓글남기기