728x90
https://programmers.co.kr/learn/courses/30/lessons/64061
난이도 : 하
유형 : 시뮬레이션
문제에서 하라는 대로 해주면 된다.
배열의 가장 마지막 원소와 크레인이 집어 올린 원소와 같으면 배열의 마지막 원소를 pop 시킨다.
그리고 결과값에 2개를 더해준다.
단 주의할 점은 원소를 빼낸 후에 break 문을 걸어야 안쪽의 for 문 순회에서 벗어날 수 있다. !!! (크레인 처리 이후에 바로 다음 move를 수행하기 위해서이다. )
def solution(board, moves):
stack = []
answer = 0
n = len(board)
for i in moves: # i- 1 해야함 index 로 쓰려면
for j in range(n):
if board[j][i-1] > 0:
if len(stack) == 0:
stack.append(board[j][i-1])
board[j][i-1] = 0
break
else:
now = board[j][i-1]
board[j][i-1] = 0
if stack[-1] == now:
stack.pop()
answer += 2
break
else:
stack.append(now)
break
return answer
728x90
'Algorithm (PS)' 카테고리의 다른 글
[백준] 2206 벽 부수고 이동하기 와 나의 시행착오들 기록 (0) | 2022.02.04 |
---|---|
[백준] 12865 평범한 배낭, Knapsack Problem (0) | 2022.02.03 |
[백준/삼성] 16236 아기상어 (0) | 2022.02.03 |
[백준] 1699 제곱수의 합 <부제: 너무 느린 파이썬 극복하기;;> (0) | 2022.02.01 |
[백준] 11054 가장 긴 바이토닉 부분 수열 in python (0) | 2022.01.31 |