[백준 10866] 덱

1908 단어 백준Python3Python3

10866번

문제

풀이

자료구조 덱을 파이썬으로 구현하는 코드
처음에 input을 사용했는데 시간초과가 떴다😥
질문 검색 탭에서 python 시간초과 에러에 관한 내용을 찾아보니 input을 sys.stdin.readline으로 바꾸라고 해서 바꿨더니 성공!

입출력 속도 비교하기

_sys.stdin.readline >> raw_input() >> input()

input이 제일 느리다.

sys가 붙은 메소드를 사용하기 위해서는 import sys를 선언해줘야 한다.

sys.stdin.readline : 한 라인 입력 받을 때
sys.stdin : 여러 줄 입력받을 때

for line in sys.stdin :
	print(line)

참고한 블로그

소스 코드

import sys
def push_front(x) :
  deque.insert(0,x)

def push_back(x) :
  deque[len(deque):len(deque)] = [x]

def empty() :
  if len(deque) == 0 :
    return 1
  else :
    return 0

def pop_front() : 
  global deque
  if empty() == 1 :
    print(-1)
  else :
    print(deque[0])
    deque = deque[1::]

def pop_back() : 
  global deque
  if empty() == 1 :
    print(-1)
  else :
    print(deque[-1])
    deque = deque[:-1]

def size() :
  print(len(deque))

def front() :
  if empty() == 1 :
    print(-1)
  else : print(deque[0])

def back() :
  if empty() == 1:
    print(-1)
  else : print(deque[-1])

order = int(sys.stdin.readline())
deque=[]
L=[]
for i in range(order) :
  L=[x for x in sys.stdin.readline().split()]
  if L[0] == 'push_front' :
    push_front(L[1])
  elif L[0] == 'push_back' :
    push_back(L[1])
  elif L[0] == 'pop_front' :
    pop_front()
  elif L[0] == 'pop_back' :
    pop_back()
  elif L[0] == 'size' :
    size()
  elif L[0] == 'empty' :
    print(empty())
  elif L[0] == 'front' :
    front()
  elif L[0] == 'back' :
    back()

좋은 웹페이지 즐겨찾기