https://school.programmers.co.kr/learn/courses/30/lessons/131704
from collections import deque
def solution(order):
answer = 0
n = len(order)
main = [ i for i in range(1,n+1)]
main = deque(main)
order = deque(order)
sub = []
for i in range(n):
if not order:
break
if main[0] != order[0]:
now = main.popleft()
sub.append(now)
else:
main.popleft()
order.popleft()
answer +=1
if sub:
while sub[-1]==order[0]:
sub.pop()
order.popleft()
answer +=1
if not sub or not order:
break
return answer
약간 하노이의 탑이 생각나는 문제였다.
주어진 조건을 그대로 구현해서 코드를 작성했는데, 인덱스에 접근하는만큼 인덱스 오류가 발생하지 않게 조건문을 설정했다.
좋은 글 감사합니다.