프로그래머스 코딩테스트 고득점 Kit의 문제입니다.
https://programmers.co.kr/learn/challenges?tab=algorithm_practice_kit
문제
https://programmers.co.kr/learn/courses/30/lessons/64061
내가 작성한 코드
from collections import deque
def solution(board, moves):
answer = 0
dolls = []
for c in range(len(board)):
q = deque()
for r in range(len(board[0])):
if board[r][c] > 0:
q.append(board[r][c])
dolls.append(q)
stk = []
for col in moves:
if dolls[col-1]:
doll = dolls[col-1].popleft()
if stk and stk[-1] == doll:
stk.pop()
answer += 2
else:
stk.append(doll)
return answer
- Queue
- 모든 column을 queue로 변경
- 선택된 column이 empty가 아닐 경우만 pop
- pop한 element는 stack으로 push
- Stack
- 요소가 push될 때마다 마지막 요소와 비교
- 인형이 터지는 경우, 마지막 인형을 pop하고 인형 개수 추가
다른 사람이 작성한 코드
None
기억해야할 것
- 큐와 스택을 이용하여 간단히 풀 수 있다
'코딩테스트' 카테고리의 다른 글
[프로그래머스][KAKAO_인턴][2019] 불량 사용자 (0) | 2021.09.08 |
---|---|
[프로그래머스][KAKAO_인턴][2019] 튜플 (0) | 2021.09.08 |
[프로그래머스][KAKAO_인턴][2020] 동굴 탐험 (0) | 2021.09.08 |
[프로그래머스][KAKAO_인턴][2020] 경주로 건설 (0) | 2021.09.08 |
[프로그래머스][KAKAO_인턴][2020] 보석 쇼핑 (0) | 2021.09.08 |