728x90
문제 풀이
def solution(board, moves):
stacklist = []
answer = 0
for i in moves:
for j in range(len(board)):
if board[j][i-1] != 0:
stacklist.append(board[j][i-1])
board[j][i-1] = 0
if len(stacklist) > 1:
if stacklist[-1] == stacklist[-2]:
stacklist.pop(-1)
stacklist.pop(-1)
answer += 2
break
return answer
- 게임 보드와 크레인이 움직이는 위치를 나타내는 리스트인 moves를 입력으로 받음
- stacklist라는 빈 리스트를 만들고 크레인이 뽑은 인형을 담아둠
- 또한, answer라는 변수를 만들어 뽑은 인형 쌍의 개수를 저장
- 이제 moves 리스트를 반복하면서 보드의 열을 검색하고, 열에서 첫 번째로 0이 아닌 인형을 찾음
- 이 인형을 stacklist에 추가하고, 해당 위치의 보드를 0으로 설정
- 그리고, stacklist에 인형이 2개 이상 쌓이면 마지막 두 인형을 비교하여 같은 경우에는 뽑아내고, answer에 2를 더함
- answer를 반환
'프로그래밍 > 알고리즘' 카테고리의 다른 글
백준 9465 - 스티커 파이썬 (0) | 2023.03.27 |
---|---|
이진 탐색(Binary Search) (1) | 2023.03.21 |
프로그래머스 - 명예의 전당(1) 파이썬 (0) | 2023.03.14 |
백준 3040 - 백설공주와 일곱 난쟁이 파이썬 (0) | 2023.03.13 |
프로그래머스 두 큐 합 같게 만들기 파이썬 (0) | 2023.03.10 |
댓글