일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준 시그마 파이썬
- 백준 Σ
- 수학
- 분할 정복
- 백준 13172 파이썬
- 백준 13172
- 혁펜하임강의후기
- 혁펜하임강의
- 패스트캠퍼스
- 자료구조
- 백준 구간 합 구하기 5
- 코딩테스트
- 백준 시그마
- AIDEEPDIVE
- 분할 정복을 이용한 거듭제곱
- 혁펜하임AI
- 큐
- mysql
- 백준 Σ 파이썬
- 혁펜하임
- DP
- AI강의
- 알고리즘
- 모듈로 곱셈 역원
- 패스트캠퍼스혁펜하임
- 그리디알고리즘
- 백준 구간 합 구하기 5 파이썬
- 다이나익 프로그래밍
- 다이나믹프로그래밍
- 구현
Archives
- Today
- Total
MingyuPark
[백준 18258] 큐2 본문
문제
https://www.acmicpc.net/problem/18258
18258번: 큐 2
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
아이디어
단순 구현이다. deque를 통해 큐를 구현하고, 조건에 맞춰서 명령을 처리하도록 하면 된다.
난이도는 높지 않고, 주어진 조건을 정확하게 구현하는 게 중요하다.
한 가지 주의할 점은 여러 줄에 걸쳐서 입력을 받기 때문에 input()을 통해서 입력을 받게 되면 시간 초과가 발생할 수 있다. 이런 경우 입력의 개수 T는 input을 통해 받아도 상관이 없지만 반복문에서 입력을 받을 때는 sys.stdin.readline()을 통해서 받아야 한다.
Solution
import sys
from collections import deque
q = deque([])
T = int(input())
for _ in range(T) :
cmd = list(map(str, sys.stdin.readline().split()))
if cmd[0] == 'push' :
q.append(cmd[1])
elif cmd[0] == 'pop' :
if len(q) > 0 :
popped = q.popleft()
print(popped)
else :
print(-1)
elif cmd[0] == 'size' :
print(len(q))
elif cmd[0] == 'empty' :
if len(q) > 0 :
print(0)
else :
print(1)
elif cmd[0] == 'front' :
if len(q) == 0 :
print(-1)
else :
print(q[0])
elif cmd[0] == 'back' :
if len(q) == 0 :
print(-1)
else :
print(q[-1])
'Algorithm' 카테고리의 다른 글
[백준 10942] 팰린드롬? (1) | 2022.09.14 |
---|---|
[백준 2839] 설탕 배달 (0) | 2022.09.13 |
[백준 9461] 파도반 수열 (0) | 2022.09.12 |
[백준 11726] 2×n 타일링 (0) | 2022.09.12 |
[백준 1010] 다리 놓기 (0) | 2022.08.17 |