https://school.programmers.co.kr/learn/courses/30/lessons/64061
2019 카카오 개발자 겨울 인턴십
def solution(board, moves):
basket = []
n = len(board)
answer = 0
for m in moves:
for i in range(n):
if board[i][m-1] != 0:
basket.append(board[i][m-1])
board[i][m-1] = 0
break
try:
if basket[-1] == basket[-2]:
basket = basket[:-2]
answer += 2
except:
continue
return answer
어렵지 않게 풀었다.
딱 보니까 후입선출 연산을 이용하는 스택 문제인 것 같았음
근데 자료구조 공부를 안 한지 오래돼서 일단 직관적으로 보면서 풀음
좋아요 많이 받은 타인 코드 보니까 길이만 보면 내 코드도 괜찮은 수준인 것 같다.
문제 풀다보니까 내가 남들보다 try/except 예외 처리문을 많이 쓰는 거 같은데
이게 좋은 건지 아닌 건지 모르겠음..
타인 코드
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