티스토리 뷰

728x90
반응형

https://www.acmicpc.net/problem/10866

 

10866번: 덱

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

 

 

내 풀이

import sys
from collections import deque
deq=deque()
n=int(sys.stdin.readline())
for i in range(n):
    line=sys.stdin.readline().strip()
    if "push_front" in line:
        _,num=line.split()
        deq.appendleft(int(num))
    elif "push_back" in line:
        _,num=line.split()
        deq.append(int(num))
    elif line=="front":
        if deq:
            print(deq[0])
        else:
            print(-1)
    elif line=="size":
        print(len(deq))
    elif line=="empty":
        if deq:
            print(0)
        else:
            print(1)
    elif line=="back":
        if deq:
            print(deq[-1])
        else:
            print(-1)
    elif line=="pop_front":
        if deq:
            print(deq.popleft())
        else:
            print(-1)
    elif line=="pop_back":
        if deq:
            print(deq.pop())
        else:
            print(-1)

 

deque를 import해서 appendleft, popleft을 사용했다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함