[백준] 10866. 덱

채연·2023년 1월 8일
0

baekjoon

목록 보기
3/26

10866. 덱

문제 링크


📖 문제 설명

  • 덱에 대해서 알아본다.
  • push_front, push_back, pop_front, pop_back, size, empty, front, back을 입력하면 각각에 맞는 연산을 해주는 프로그램

⌨️ 입력

  • 첫째 줄에는 주어지는 명령의 수
  • 둘째 줄부터는 명령이 하나씩 주어짐

🖥️ 출력

  • 출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력

📘 최종 코드

from collections import deque
import sys

# num = int(input())
num = int(sys.stdin.readline())

dq = deque()

for i in range(num):
    # X = list(input().split())
    X = list(sys.stdin.readline().split())

    if(X[0] == "push_front"):
        dq.appendleft(X[1])

    elif(X[0] == "push_back"):
        dq.append(X[1])

    elif(X[0] == "pop_front"):
        if(len(dq)==0):
            print("-1")
        else:
            print(dq.popleft())

    elif(X[0] == "pop_back"):
        if(len(dq)==0):
            print("-1")
        else:
            print(dq.pop())

    elif(X[0] == "size"):
        print(len(dq))

    elif(X[0] == "empty"):
        if(len(dq)==0):
            print("1")
        else:
            print("0")

    elif(X[0] == "front"):
        if(len(dq)==0):
            print("-1")
        else:
            print(dq[0])

    elif(X[0] == "back"):
        if(len(dq)==0):
            print("-1")
        else:
            print(dq[-1])

🔎 알게 된 내용

from collections import deque
1. 앞부분에 push : dq.appendleft(X[1])
2. 뒷부분에 push : dq.append(X[1])
3. 앞부분에 pop : dq.popleft()
4. 뒷부분에 pop : dq.pop()
5. size 알기 : len(dq)
6. 앞부분 값 알기 : dq[0]
7. 뒷부분 값 알기 : dq[-1]

profile
Hello Velog

0개의 댓글