티스토리 뷰
📚 문제

입력

출력

예제 입력 1
15
push_back 1
push_front 2
front
back
size
empty
pop_front
pop_back
pop_front
size
empty
pop_back
push_front 3
empty
front
예제 출력 1
2
1
2
0
2
1
-1
0
1
-1
0
3
예제 입력 2
22
front
back
pop_front
pop_back
push_front 1
front
pop_back
push_back 2
back
pop_front
push_front 10
push_front 333
front
back
pop_back
pop_back
push_back 20
push_back 1234
front
back
pop_back
pop_back
예제 출력 2
-1
-1
-1
-1
1
1
2
2
333
10
10
333
20
1234
1234
20
🧑🏻💻 풀이 과정
- n번동안 반복하며 명령어(
command
)를 입력받자. from collections import deque
를 이용하여dq = deque()
를 선언하자.- push_front면 명령어의 11번째부터
appendleft
로 맨 앞에 저장하자. - push_back이면 명령어의 10번째부터
append
로 맨 뒤에 저장하자. - pop_front면 dq에 요소가 있으면 popleft로 맨 앞의 요소로 꺼내면서 출력, 없으면 -1을 출력하자.
- pop_back이면 dq에 요소가 있으면 pop으로 맨 뒤의 요소로 꺼내면서 출력, 없으면 -1을 출력하자.
- size면 de의 사이즈를 출력하자.
- empty면 de에 요소가 있으면 0을 출력하고, 없으면 1을 출력하자.
- front면 dq에 요소가 있으면 dq[0]으로 맨 앞의 요소를 출력, 없으면 -1을 출력하자.
- back이면 dq에 요소가 있으면 dq[-1]로 맨 뒤의 요소를 출력, 없으면 -1을 출력하자.
import sys
from collections import deque
def process():
command = sys.stdin.readline().rstrip()
# push_front
if 'push_front' in command: dq.appendleft(command[11::])
# push_back
if 'push_back' in command: dq.append(command[10::])
# pop_front
if command == 'pop_front': print(dq.popleft()) if dq else print(-1)
# pop_back
if command == 'pop_back': print(dq.pop()) if dq else print(-1)
# size
if command == 'size': print(len(dq))
# empty
if command == 'empty': print(0) if dq else print(1)
# front
if command == 'front': print(dq[0]) if dq else print(-1)
# back
if command == 'back': print(dq[-1]) if dq else print(-1)
dq = deque()
for _ in range(int(sys.stdin.readline().rstrip())):
process()
'알고리즘' 카테고리의 다른 글
[algorithm] 백준 11899 - 괄호 끼어넣기 (파이썬) (0) | 2022.09.02 |
---|---|
[algorithm] 백준 1620 - 나는야 포켓몬 마스터 이다솜 (파이썬) (0) | 2022.09.01 |
[algorithm] 백준 17219 - 비밀번호 찾기 (파이썬) (0) | 2022.08.30 |
[algorithm] 백준 10845 - 큐 (파이썬) (0) | 2022.08.29 |
[algorithm] 백준 10828 - 스택 (파이썬) (0) | 2022.08.28 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- MySQL
- 코틀린
- kotlin
- spring boot
- 리팩토링
- Spring
- 백준
- Algorithm
- 스프링 부트
- webflux
- 노마드코더
- 스프링
- 정렬
- 구현
- 북클럽
- 문자열
- 인프런
- 김영한
- leetcode
- 파이썬
- mysql 8.0
- 데이터베이스
- 자료구조
- 스프링부트
- 코테
- 알고리즘
- 그리디
- Real MySQL
- 릿코드
- 노마드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함