반응형
https://programmers.co.kr/learn/courses/30/lessons/64061
def solution(board, moves):
# 인형을 담을 스택
stack = []
answer = 0
# 1. move 안의 좌표를 check한다.
for m in moves:
pick = 0
# 2. board를 위에서부터 한 "행씩" 하나씩 체크한다.
for r in board:
# 3. move 안의 좌표는 열을 나타낸다. 0이 아니면 인형이 있는 것이므로 선택한다.
if r[m - 1] != 0:
pick = r[m - 1]
r[m - 1] = 0
break
# 4. 인형이 없으면 다른 좌표로 이동한다.
if pick == 0: continue
# 5. 맨 꼭대기가 같은 인형이면 그 인형을 빼주고, 없어진 것은 2개니 answer에 2를 더한다.
if stack and stack[-1] == pick:
stack.pop()
answer += 2
# 6. 스택이 비어있거나 같은 인형이 아니면 제거할 수 없으니 스택에 추가한다.
else:
stack.append(pick)
return answer
반응형
'ETC' 카테고리의 다른 글
[LV1] 프로그래머스 최대값 구하기 mysql (0) | 2020.10.03 |
---|---|
[LV1] 2개 뽑아서 더하기 Python (0) | 2020.10.03 |
[LV1] 모든 레코드 조회하기 Mysql (0) | 2020.10.03 |
프로그래머스 DFS/BFS 단어 변환 Python 풀이 (0) | 2020.03.08 |
프로그래머스 DFS/BFS 네트워크 Python 풀이 (0) | 2020.03.08 |