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 |