728x90
반응형
1. 문제 설명
2. 풀이과정
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- 큐를 deque 자료구조로 만들기 위해 deque 함수를 불러온다. from collections import deque
- 명령어의 개수를 입력받는다. N = int(sys.stdin.readline())
- 빈 큐를 생성한다. queue = deque()
- 명령어의 개수만큼 반복하며 for _ in range(N)
- 명령어를 입력받아 공백을 기준으로 분리해 리스트로 저장한다. op = list(map(str, sys.stdin.readline().split()))
- 만약 명령어의 첫 번째 단어가 push이면 if (op[0] == 'push')
- 두 번째 값을 정수형으로 큐에 추가한다. queue.append(int(op[1]))
- 만약 명령어의 첫 번째 단어가 pop이면 elif (op[0] == 'pop')
- 큐가 비어있지 않을 경우 제일 앞에 있는 정수를 제거하고 출력한다. if (queue): print(queue.popleft())
- 큐가 비어있을 경우 -1을 출력한다. else: print(-1)
- 만약 명령어의 첫 번째 단어가 size이면 큐의 원소 개수를 출력한다. elif (op[0] == 'size'): print(len(queue))
- 만약 명령어의 첫 번째 단어가 empty이면 elif (op[0] == 'empty')
- 큐가 비어있지 않을 경우 0을 출력하고 if (queue): print(0)
- 큐가 비어있을 경우 1을 출력한다. else: print(1)
- 만약 명령어의 첫 번째 단어가 front이면 elif (op[0] == 'front')
- 큐가 비어있지 않을 경우 큐의 제일 앞에 있는 정수를 출력한다. if (queue): print(queue[0])
- 큐가 비어있으면 -1을 출력한다. else: print(-1)
- 만약 명령어의 첫 번째 단어가 위 명령어 이외의 단어이면(back이면) else
- 큐가 비어있지 않을 경우 큐의 제일 뒤에 있는 정수를 출력한다. if (queue): print(queue[-1])
- 큐가 비어있을 경우 -1을 출력한다. else: print(-1)
반응형
3. 소스코드
import sys
from collections import deque
N = int(sys.stdin.readline())
queue = deque()
for _ in range(N):
op = list(map(str, sys.stdin.readline().split()))
if (op[0] == 'push'):
queue.append(int(op[1]))
elif (op[0] == 'pop'):
if (queue):
print(queue.popleft())
else:
print(-1)
elif (op[0] == 'size'):
print(len(queue))
elif (op[0] == 'empty'):
if (queue):
print(0)
else:
print(1)
elif (op[0] == 'front'):
if (queue):
print(queue[0])
else:
print(-1)
else:
if (queue):
print(queue[-1])
else:
print(-1)
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 1037번 : 약수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.08 |
---|---|
[백준] 24511번 : queuestack - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.07 |
[백준] 2346번 : 풍선 터뜨리기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.06 |
[백준] 28279번 : 덱 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.05 |
[백준] 12789번 : 도키도키 간식드리미 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.03 |
[백준] 4949번 : 균형잡힌 세상 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.02 |
[백준] 28278번 : 스택 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.01 |
[백준] 13909번 : 창문 닫기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.30 |