백준 10866(파이썬):덱

백준 10866번 문제 정리글 입니다.

문제 출처-https://www.acmicpc.net/problem/10866

문제 내용

백준 10866번

나의 풀이

    import sys

    n= int(sys.stdin.readline())
    queue=[]
    for i in range(n):
        order=list(sys.stdin.readline().split())
        if order[0]=='push_front':
            queue.insert(0,order[1])
        elif order[0]=='push_back':
            queue.append(order[1])
        elif order[0]=='pop_front':
            if len(queue)>0:
                answer=queue.pop(0)
                print(answer)
            else:
                print(-1)
        elif order[0]=='pop_back':
            if len(queue)>0:
                answer=queue.pop()
                print(answer)
            else:
                print(-1)
        elif order[0]=='size':
            answer=len(queue)
            print(answer)
        elif order[0]=='empty':
            if len(queue)>0:
                print(0)
            else:
                print(1)
        elif order[0]=='front':
            if len(queue)>0:
                answer=queue[0]
                print(answer)
            else:
                print(-1)
        else:
            if len(queue)>0:
                answer=queue[-1]
                print(answer)
            else:
                print(-1)

큐를 만드는 문제(백준 10845번)에서 앞뒤에 각각 삽입, 삭제 기능만 추가하면 데크를 만들 수 있다.

굳이 함수를 구현하지 않고 조건문안에서 처리하도록 했다.

풀이를 본 후

대부분 유사하게 해결

해결한 후

데크의 개념을 다시한번 확인하는 좋은 문제였다…