728x90
반응형
문제: https://school.programmers.co.kr/learn/courses/30/lessons/64061
풀이
문제의 풀이는 아래의 두 가지가 있습니다.
비슷한 방법입니다.
행렬을 transpose하는 것이 아니라, moves에서 인덱스 값을 받아와서 처리합니다.
def solution(board, moves):
nrow, ncol = len(board), len(board[0])
stack = []
cnt = 0
for m in moves: # [1,5,3,5,1,2,1,4]
for i in range(nrow): # 0 1 2 3 4
if board[i][m-1]: # moves에서 인덱스 값을 받아옴
stack.append(board[i][m-1])
board[i][m-1] = 0 # pop한 것 같은 효과
break
if len(stack) > 1:
if stack[-2] == stack[-1]:
stack = stack[:-2] # pop한 것 같은 효과
cnt += 2
return cnt
def solution(board,moves):
stack = []
cnt = 0
for i in moves:
for j in range(len(board)):
if board[j][i-1] != 0:
stack.append(board[j][i-1])
board[j][i-1] = 0
if len(stack) > 1:
if stack[-1] == stack[-2]:
stack.pop(-1)
stack.pop(-1)
cnt += 2
break
return cnt
728x90
'자료구조 및 알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] level2. 방문 길이 (1) | 2024.06.14 |
---|---|
[프로그래머스] level1. 실패율 (0) | 2024.06.14 |
[프로그래머스] level1. 모의고사 (0) | 2024.06.13 |
프로그래머스 - 식품분류별 가장 비싼 식품의 정보 조회하기 (SQL) (0) | 2024.04.19 |
프로그래머스 - 조건별로 분류하여 주문상태 출력하기 (SQL) (0) | 2024.04.18 |