728x90
반응형
1. 문제 설명
2. 풀이과정
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- popleft() 함수를 사용하기 위해 deque을 생성하는데 deque 생성하기 위해 deque 모듈을 불러온다. from collections import deque
- 명령의 수를 입력받는다. N = int(sys.stdin.readline())
- 큐를 생성한다. queue = deque()
- 명령의 수만큼 반복하며 for _ in range(N)
- 명령을 입력받고 리스트로 저장한다. temp = list(sys.stdin.readline())
- 만약 입력받은 명령의 명령어가 push이면, if (temp[0] == 'push')
- 큐에 명령어 값을 추가한다. queue.append(int(temp[1]))
- push 명령어가 아니고 pop 명령어이면 elif (temp[0] == 'pop')
- 큐가 공백이라 원소를 제거할 수 없을 경우 -1을 출력한다. if (len(queue) == 0): print(-1)
- 큐가 공백이 아닐 경우 큐의 제일 앞 원소를 삭제하고 출력한다. else: print(popleft())
- pop 명령어도 아니고 size 명령어이면 elif (temp[0] == 'size')
- 큐의 원소 개수를 출력한다. print(len(queue))
- size 명령어도 아니고 empty 명령어이면 elif (temp[0] == 'empty')
- 큐가 공백이면 1을 출력하고 if (len(queue) == 0): print(1)
- 큐가 공백이 아니면 0을 출력한다. else: print(0)
- empty 명령어도 아니고 front 명령어이면 elif (temp[0] == 'front')
- 큐가 공백일 경우 -1을 출력하고 if (len(queue) == 0): print(-1)
- 큐가 공백이 아닐 경우 큐의 제일 앞 원소를 출력한다. else: print(queue[0])
- front 명령어도 아니면 (back 명령어) else
- 큐가 공백일 경우 -1을 출력하고 if (len(queue) == 0): print(-1)
- 큐가 공백이 아닐 경우 큐의 제일 뒤 원소를 출력한다. else: print(queue[-1])
반응형
3. 소스코드
import sys
from collections import deque
N = int(sys.stdin.readline())
queue = deque()
for _ in range(N):
temp = list(sys.stdin.readline().split())
if (temp[0] == 'push'):
queue.append(int(temp[1]))
elif (temp[0] == 'pop'):
if (len(queue) == 0):
print(-1)
else:
print(queue.popleft())
elif (temp[0] == 'size'):
print(len(queue))
elif (temp[0] == 'empty'):
if (len(queue) == 0):
print(1)
else:
print(0)
elif (temp[0] == 'front'):
if (len(queue) == 0):
print(-1)
else:
print(queue[0])
else:
if (len(queue) == 0):
print(-1)
else:
print(queue[-1])
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 11053번 : 가장 긴 증가하는 부분 수열 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.30 |
---|---|
[백준] 1436번 : 영화감독 숌 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.29 |
[백준] 2164번 : 카드2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.29 |
[백준] 1697번 : 숨바꼭질 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.28 |
[백준] 11653번 : 소인수분해 - 파이썬(Python) - 우당탕탕 개발자되기 프로젝트 (0) | 2023.07.27 |
[백준] 1018번 : 체스판 다시 칠하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.26 |
[백준] 1931번 : 회의실 배정 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.26 |
[백준] 2579번 : 계단 오르기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.25 |