https://programmers.co.kr/learn/courses/30/lessons/64061
def solution(board, moves):
stack = []
result = 0
for x in moves:
for i in range(len(board)):
target = board[i][x-1]
if target != 0:
board[i][x-1] = 0
if stack and stack[-1] == target:
stack.pop()
result += 2
else:
stack.append(target)
break
return result
구현, 자료구조(스택)
1. moves를 탐색
- 해당 j좌표에서 i를 증가해가면서 0이 아닌 값을 찾고, board값을 0으로 초기화
- 스택의 top (stack[-1])이 해당 값과 같다면 pop, result += 2
- 아니라면 스택에 값 append
2. return result
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv1 - 음양 더하기 (파이썬) (0) | 2022.03.16 |
---|---|
[프로그래머스] Lv1 - 없는 숫자 더하기 (파이썬) (0) | 2022.03.16 |
[프로그래머스] Lv1 - 키패드 누르기 (파이썬) (0) | 2022.03.16 |
[프로그래머스] Lv1 - 숫자 문자열과 영단어 (파이썬) (0) | 2022.03.16 |
[프로그래머스] Lv1 - 신규 아이디 추천 (파이썬) (0) | 2022.03.16 |