[백준] 10866번

코린이·2022년 4월 22일
0

백준

목록 보기
9/38

덱(Deque)


이미지 출처

덱이란?

앞 뒤, 즉 양쪽에서 삽입과 삭제가 가능한 구조로 스택과 큐의 연산을 모두 지원하는 자료구조 이다.

📢 10866번 문제

백준 문제 링크

📢 풀이

사용한 언어 : python

from collections import deque : 덱 자료형을 생성하는 모듈

deque() : 덱 객체 생성

사용한 deque 메소드

  • append() : 오른쪽에 데이터 추가
  • appendleft() : 왼쪽에서 데이터 추가
  • pop() : 오른쪽에서 데이터 삭제
  • popleft() : 데이터를 왼쪽에서 삭제

🔎 코드

import sys
from collections import deque

n = int(input())
result = deque()

for i in range(n):
    x = sys.stdin.readline().split()
    if x[0] == "push_back":
        result.append(x[1])
    elif x[0] == "push_front":
        result.appendleft(x[1])
    elif x[0] == "front":
        if result:
            print(result[0])
        else:
            print(-1)
    elif x[0] == "back":
        if result:
            print(result[-1])
        else:
            print(-1)
    elif x[0] == "pop_front":
        if result:
            print(result.popleft())  # result가 비어있어서
        else:
            print(-1)
    elif x[0] == "pop_back":
        if result:
            print(result.pop())
        else:
            print(-1)
    elif x[0] == "size":
        print(len(result))
    elif x[0] == "empty":
        if result:
            print(0)
        else:
            print(1)

profile
초보 개발자

0개의 댓글