카테고리 없음

백준 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())