-
백준 10845번 : 큐 (Python, 파이썬) - 자료구조 큐(Queue)카테고리 없음 2019. 1. 7. 21:10
https://www.acmicpc.net/problem/10845
큐(Queue)의 개념은 쉽다. 표를 사기 위해 줄을 선 사람들을 생각해보자. 먼저 줄 선 사람이 먼저 표를 산다. 늦게 줄 선 사람은 당연히 늦게 표를 산다. 먼저 입력된 명령, 데이터가 먼저 처리된다. 늦게 입력되었다면 늦게 처리될 수밖에 없다.
이러한 개념을 염두에 두고 코드를 짰다.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
class Queue:
def __init__(self):
self.Queue_item = []
def push(self, x):
self.Queue_item.append(x)
def pop(self):
judge = len(self.Queue_item)
if judge < 1:
return -1
result = self.Queue_item[0]
del self.Queue_item[0]
return result
def size(self):
result = len(self.Queue_item)
return result
def empty(self):
result = len(self.Queue_item)
if result < 1:
return 1
else:
return 0
def front(self):
result = len(self.Queue_item)
if result < 1:
return -1
else:
return self.Queue_item[0]
def back(self):
result = len(self.Queue_item)
if result < 1:
return -1
else:
return self.Queue_item[-1]
Q = Queue()
N = int(input())
for _ in range(N):
cmd = list(input().split(' '))
if cmd[0] == 'push':
Q.push(cmd[1])
elif cmd[0] == 'pop':
print(Q.pop())
elif cmd[0] == 'size':
print(Q.size())
elif cmd[0] == 'empty':
print(Q.empty())
elif cmd[0] == 'front':
print(Q.front())
elif cmd[0] == 'back':
print(Q.back())