스터디/코딩테스트

백준 28279 - 덱 2

공대생철이 2024. 1. 21. 17:51
728x90

 

처음 든 생각

- 그냥 큐의 메서드만 잘 활용하고 출력값만 실수하지 말자

- 아 input 말고 sys.stdin.readline 쓰자 -> 예전에 로직은 다 맞았는데 input 때문에 시간 초과 났던 문제가 있어서 ptsd가 왔다.

 

나의 답

import sys
from collections import deque

N = int(sys.stdin.readline())
q= deque()
for _ in range(N):
    cmd = list(map(int, sys.stdin.readline().split()))
    n = cmd[0]
    if n == 1:
        q.appendleft(cmd[1])
    elif n == 2:
        q.append(cmd[1])
    elif n==3:
        if len(q) == 0:
            print(-1)
        else:
            print(q.popleft())
    elif n ==4:
        if len(q) == 0:
            print(-1)
        else:
            print(q.pop())
    elif n == 5:
        print(len(q))
    elif n ==6:
        if len(q) == 0:
            print(1)
        else:
            print(0)
    elif n == 7:
        if len(q) == 0:
            print(-1)
        else:
            print(q[0])
    elif n == 8:
        if len(q) == 0:
            print(-1)
        else:
            print(q[-1])

 

딱히 해설할 건 없는 것 같다.

 

왼쪽 앞에 넣어주는 건 appendleft 빼는 건 popleft

오른쪽 끝에 넣어주는 건 append 빼는 건 pop 

 

이 메서드들만 잘 숙지하고 있었으면 쉽게 풀 수 있는 문제였다.

 

728x90

'스터디 > 코딩테스트' 카테고리의 다른 글

백준 2630 - 색종이 만들기  (2) 2024.01.24
백준 24511 - queuestack  (0) 2024.01.22
백준 4779 - 칸토어 집합  (0) 2024.01.17
SWEA 5177 - 이진 힙  (0) 2024.01.17
SWEA 5147 - Subtree  (0) 2024.01.16