백준

백준 28279 문제풀이 [python]

ys.k 2023. 8. 20. 16:31

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

문제를 보자.

간단한 큐(덱) 구현 문제다.

 

문장 해석에 있어, 헷갈리는 부분이 있었다.

 

3, 4번에 정수를 빼고 출력한다는데, 정수를 뺀 나머지 덱을 출력하라는 건지, 정수를 뺀 다음에 그 수를 출력하라는 건지, 가끔 백준 문제를 풀다 보면 이렇게 여러 가지 해석이 나오는 경우가 있다.

 

그리고 출력값의 형태가 오답 여부를 결정하는것 같다.

 

같은 1을 출력하지만, int형인지, str형인지에 따라 오답 여부가 나뉘는 것 같다.

 

코드

from collections import deque
import sys as s

n = int(s.stdin.readline())
queue= deque()
for i in range(n):
    sen = list(map(int,s.stdin.readline().split()))
    if len(sen) > 1:
        if sen[0] == 1:
            queue.appendleft(int(sen[1]))
        elif sen[0] == 2:
            queue.append(int(sen[1]))
    else:
        if sen[0] == 3:
            print(queue.popleft() if queue else -1)
        elif sen[0] == 4 :
            print(queue.pop() if queue else -1)
        elif sen[0] == 5:
            print(len(queue))
        elif sen[0] == 6:
            print(0 if queue else 1)
        elif sen[0] == 7:
            print(queue[0] if queue else -1)
        elif sen[0] == 8:
            print(queue[-1] if queue else -1)