https://www.acmicpc.net/problem/10866
문제
21.02.16 접근법
문제 그대로 if-else문으로 풀이
deque을 활용
21.02.16 코드
from collections import deque
import sys
N=int(input())
queue=deque([])
for i in range(N):
cmd=sys.stdin.readline().split()
if cmd[0]=='push_front':
queue.appendleft(int(cmd[1]))
elif cmd[0]=='push_back':
queue.append(int(cmd[1]))
elif cmd[0]=='pop_front':
if queue:
print(queue.popleft())
else:
print(-1)
elif cmd[0]=='pop_back':
if queue:
print(queue.pop())
else:
print(-1)
elif cmd[0]=='size':
print(len(queue))
elif cmd[0]=='empty':
if queue:
print(0)
else:
print(1)
elif cmd[0]=='front':
if queue:
print(queue[0])
else:
print(-1)
elif cmd[0]=='back':
if queue:
print(queue[-1])
else:
print(-1)
21.07.22 접근법
문제 그대로 if-else문으로 풀이
deque을 활용
2월과 다른 점이 있다면, if문 안에 있는 if문을 합쳐 좀 더 코드 간소화를 시킴.
21.07.22 코드
import sys
from collections import deque
N=int(input())
deq=deque()
for _ in range(N):
cmd=sys.stdin.readline().strip().split()
if cmd[0]=='push_front':
deq.appendleft(int(cmd[1]))
elif cmd[0]=='push_back':
deq.append(int(cmd[1]))
elif cmd[0]=='pop_front' and deq:
print(deq.popleft())
elif cmd[0]=='pop_back' and deq:
print(deq.pop())
elif cmd[0]=='size':
print(len(deq))
elif cmd[0]=='empty':
if deq:
print(0)
else:
print(1)
elif cmd[0]=='front' and deq:
print(deq[0])
elif cmd[0]=='back' and deq:
print(deq[-1])
else:
print(-1)
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 10799번 쇠막대기 - Python(파이썬) (0) | 2021.07.26 |
---|---|
[백준] 17413번 단어 뒤집기 2 - Python(파이썬) (0) | 2021.07.22 |
[백준] 1158번 요세푸스 문제 - Python(파이썬) (0) | 2021.07.22 |
[백준] 10845번 큐 - Python(파이썬) (0) | 2021.07.22 |
[백준] 1406번 에디터 - Python(파이썬) (0) | 2021.07.22 |