[백준 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()
Author And Source
이 문제에 관하여([백준 10866] 덱), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jaenny/백준-10866-덱저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)