일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- OS
- 머신러닝
- 코딩테스트
- backtracking
- ML
- 파이썬
- two pointer
- 백준
- 투포인터
- Github
- 알고리즘
- 프로그래머스
- BF
- 백트래킹
- 완전탐색
- 1일1솔
- sort
- 정렬
- Loss
- Python
- 브루트포스
- 신나는함수실행
- CS
- 재귀
- 재귀함수
- dfs
- 코테
- Virtual Memory
- Algorithm
- python3
Archives
- Today
- Total
이것저것 공부 기록하기
[Algorithm] 1일1솔 - 백준 18258 큐2 (python3) 본문
오늘부터 나도 1일1문제 시작.
오늘의 문제 : https://www.acmicpc.net/problem/18258
# sys.stdin.readline() 을 사용해야 시간초과 안 나고 통과됨 (같은 풀이일 때 input() 으로 받면 시간초과남)
import sys
from collections import deque
n = int(sys.stdin.readline())
q = deque()
for i in range(n):
tmp = sys.stdin.readline().split()
order = tmp[0]
if order == 'push':
q.append(tmp[1])
elif order == 'pop':
if q:
print(q.popleft())
else:
print(-1)
elif order == 'size':
print(len(q))
elif order == 'empty':
if not q:
print(1)
else:
print(0)
elif order == 'front':
if q:
print(q[0])
else:
print(-1)
elif order == 'back':
if q:
print(q[-1])
else:
print(-1)
풀이는 간단한 조건문들로 큐를 구현하는 것인데 n과 명령문들을 input으로 받으니까 계속 시간초과가 났다.
sys.stdin.readline으로 받으니까 무난하게 통과되었다.
일반적으로 list로 구현하면 pop할 때 del 함수 쓰게 되므로 나머지 요소들이 앞으로 당겨지는 데에 시간이 걸리기 때문에 deque로 구현해서 popleft를 이용했다. 이후에 deque 안 쓰고 list로도 문제를 풀어봐야겠다.
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[Algorithm] 1일1솔 - 백준 1806 부분합 (python3) (0) | 2021.12.30 |
---|---|
[Algorithm] 1일1솔 - 백준 1929 소수구하기 (python3) (0) | 2021.12.29 |
[Algorithm] 1일1솔 - 백준 2960 에라토스테네스의 체 (python3) (0) | 2021.12.28 |
[Algorithm] 1일1솔 - 백준 1644 소수의 연속합 (python3) (0) | 2021.12.28 |
[Algorithm] 1일1솔 - 백준 10814 나이순정렬 (python3) (0) | 2021.12.24 |
Comments