-
68. 크레인 인형뽑기 게임Problem Solving 2023. 1. 9. 04:48728x90
https://programmers.co.kr/learn/courses/30/lessons/64061
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
인형 뽑기를 하고 뽑은 인형을 쌓아둘 때 같은 인형끼리 만나면 두 개가 모두 없어지는데, 없어진 인형의 총합을 구하는 문제
def solution(board, moves): size = len(board) top = [-1] * size for i, line in enumerate(board): for j, entry in enumerate(line): if entry != 0 and top[j] == -1: top[j] = i bucket = [] for move in moves: if top[move - 1] < size: bucket.append(board[top[move - 1]][move - 1]) top[move - 1] = top[move - 1] + 1 stack = [] answer = 0 for doll in bucket: if len(stack) == 0: stack.append(doll) elif stack[-1] == doll: stack.pop() answer = answer + 2 else: stack.append(doll) return answer
인형 뽑기 알고리즘 + 괄호 여닫기 알고리즘을 합친 문제
처음 풀 때 top = [0] * size로 놓고 왜 틀렸는지 몰라 한참 헤맸다 이렇게 하면 인형뽑기를 하기 전 특정 column에 인형이 꽉 찼을 경우를 고려하지 않음
'Problem Solving' 카테고리의 다른 글
70. 카드2 (0) 2023.01.14 69. 큐 2 (0) 2023.01.14 67. Remove Outermost Parenthesis (1) 2023.01.09 66. Next Greater Element I (0) 2023.01.09 65. Reverse Linked List (0) 2023.01.09