반응형
programmers.co.kr/learn/courses/30/lessons/64061?language=python3
def solution(board, moves):
stack = []
for move in moves:
place = move-1
catch = 0
for i in range(len(board)):
if board[i][place]!=0:
catch = board[i][place]
board[i][place]=0
break
if catch !=0:
stack.append(catch)
answer =[]
for item in stack:
if not answer:
answer.append(item)
continue
if answer[-1]== item:
answer.pop()
else:
answer.append(item)
return len(stack)-len(answer)
<잘못한 점>
1. board[i][place] 해야되는데 board[place][i] 해서 시간 소요
2. catch !=0 조건을 처음에 넣지 않아 stack에 0도 쌓아버림
3. 인형이 연쇄적으로 사라지는 상황을 생각하지 못함
4. 문제에서 1부터 시작하는 번호가 있는지확인을 안해서 place = move라고 하여 list out of range 발생
5. 전체적으로 잔실수가 많아서 시간이 매우 오래걸림..
<개선 점>
1. stack에 인형을 담는 과정, 사라지는 인형 개수를 세는 과정을 분리해서 작성했는데 이를 분리하지 말고 인형이 추가될때마다 사라짐 여부를 조사하면 훨씬 더 간결한 코드 작성 가능
댓글