티스토리 뷰

📚 문제

입력

출력

예제 입력

15
push 1
push 2
front
back
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
front

예제 출력

1
2
2
0
1
2
-1
0
1
-1
0
3

🧑🏻‍💻 풀이 과정

  • n번동안 반복하며 명령어(command)를 입력받자.
  • 데이터를 앞(front)과 뒤(back)에서 가져와서 출력하기 위해 collections.deque를 이용하여 q = deque()를 선언하자.
  • push면 명령어의 5번째 인덱스부터 q에 저장하자.
  • pop이면 q의 사이즈가 0이면 -1 출력, 아니면 popleft()로 맨 앞의 요소를 출력하자.
  • size면 q의 사이즈를 출력하자.
  • empty면 q의 사이즈가 0이면 1 출력, 아니면 0을 출력하자.
  • front이면 q의 사이즈가 0이면 -1 출력, 아니면 q[0]로 첫 번째 요소를 출력하자.
  • back이면 q의 사이즈가 0이면 -1 출력, 아니면 q[-1]로 마지막 요소를 출력하자.
import sys
from collections import deque


def process(q):
    command = sys.stdin.readline().rstrip()

    # push
    if 'push' in command:
        q.append(command[5::])

    # pop
    if command == 'pop':
        print(-1) if len(q) == 0 else print(q.popleft())

    # size
    if command == 'size': print(len(q))

    # empty
    if command == 'empty': print(1) if len(q) == 0 else print(0)

    # front
    if command == 'front':
        print(-1) if len(q) == 0 else print(q[0])

    # back
    if command == 'back':
        print(-1) if len(q) == 0 else print(q[-1])


q = deque()
for _ in range(int(sys.stdin.readline().rstrip())):
    process(q)
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함