반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/64061
문제 풀이
가장 꼭대기에 있는 인형을 뽑아서 stack에 하나씩 쌓고, 마지막 두개가 같아지면 stack에서 삭제하는 식으로 단순히 구현.
코드
def solution(board, moves):
stack = []
cnt = 0
for move in moves:
top_doll = None
for i in range(len(board)): #find top_doll
if board[i][move-1] != 0:
top_doll = board[i][move-1]
board[i][move-1] = 0
break
if top_doll:
stack.append(top_doll)
if len(stack) >= 2 and stack[-1] == stack[-2]:
del stack[-2:]
cnt += 2
return cnt
반응형
'알고리즘 > 프로그래머스 문제풀이' 카테고리의 다른 글
[프로그래머스] lv.1 강원도에 위치한 생산공장 목록 출력하기 sql 풀이 (0) | 2023.10.29 |
---|---|
[프로그래머스] lv.1 인기있는 아이스크림 sql 풀이 (0) | 2023.10.28 |
[프로그래머스] lv.1 개인정보 수집 유효기간 python 풀이 (0) | 2023.10.27 |
[프로그래머스] lv.1 키패드 누르기 풀이 (0) | 2023.10.26 |
[프로그래머스] lv.1 문자열을 정수로 바꾸기 python 풀이 (0) | 2023.10.26 |