[10845] 큐
정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성
Input
- 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)
- 둘째 줄부터 N개의 줄에는 명령이 하나씩
- 어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다
Output
- 출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력
✨ Solve
- 배열을 통한 큐 구현
- 숫자를 담을 큰 배열 한개, head & tail 인덱스를 담을 변수 두개 필요
- tail 인덱스는 다음에 삽입되어야 할 숫자가 들어가야할 인덱스 위치를 가르키고 있음
- head 인덱스는 제거되야 할 숫자의 인덱스 윛치를 가르키고 있음
- 원소의 개수는 (tail 인덱스) - (head 인덱스)
💻 Code
### 언어 python3, 메모리 31256KB, 시간 52ms
queue = [0 for i in range(10005)]
head = 0
tail = 0
def push(x: int):
global head, tail
queue[tail] = x
tail += 1
def pop():
global head, tail
if empty() == 1:
return -1
head += 1
return queue[head-1]
def front():
global head, tail
if empty() == 1:
return -1
return queue[head]
def back():
global head, tail
if empty() == 1:
return -1
return queue[tail-1]
def size():
global head, tail
return tail - head
def empty():
global head, tail
if tail == head:
return 1
else:
return 0
import sys
n = int(input())
while n > 0:
line = sys.stdin.readline().rstrip().split()
c = line[0]
if c == 'push':
push(line[1])
elif c=='pop':
print(pop())
elif c=='size':
print(size())
elif c=='empty':
print(empty())
elif c=='front':
print(front())
elif c=='back':
print(back())
n -= 1
🎯 Question
없음
'# 소쿠리 개발 공부방 > 코테 문제풀이' 카테고리의 다른 글
[BAEKJOON] [1935] 후위 표기식2: PYTHON (0) | 2023.07.27 |
---|---|
[BAEKJOON] [4949] 균형잡힌 세상: PYTHON (0) | 2023.07.27 |
[BAEKJOON] [10828] 스택: PYTHON (0) | 2023.07.27 |
[BAEKJOON] [2230] 수고르기: PYTHON (0) | 2023.07.18 |