[문제]
https://www.acmicpc.net/problem/10845
[풀이]
클래스로 큐를 선언하고 문제에 나와있는 함수를 구현했다.
시간 단축을 위해
input() 대신 sys.stdin.readline()
print() 대신 sys.stdout.write()
를 사용했다.
[코드]
import sys
class queue():
def __init__(self):
self.queue = []
self.size = 0
def push(self, x):
self.queue.append(x)
self.size += 1
def pop(self):
if self.size == 0:
return -1
else:
self.size -= 1
return self.queue.pop(0)
def my_size(self):
return self.size
def empty(self):
if self.size == 0:
return 1
else:
return 0
def front(self):
if self.size == 0:
return -1
else:
return self.queue[0]
def back(self):
if self.size == 0:
return -1
else:
return self.queue[-1]
if __name__ == '__main__':
queue = queue()
n = int(sys.stdin.readline())
for _ in range(n):
command = sys.stdin.readline().split()
if command[0] == 'push':
queue.push(command[1])
elif command[0] == 'pop':
sys.stdout.write(str(queue.pop()))
sys.stdout.write("\n")
elif command[0] == 'size':
sys.stdout.write(str(queue.my_size()))
sys.stdout.write("\n")
elif command[0] == 'empty':
sys.stdout.write(str(queue.empty()))
sys.stdout.write("\n")
elif command[0] == 'front':
sys.stdout.write(str(queue.front()))
sys.stdout.write("\n")
elif command[0] == 'back':
sys.stdout.write(str(queue.back()))
sys.stdout.write("\n")
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 10828번 스택 (0) | 2021.07.26 |
---|---|
[Python] BOJ/백준 10866번 덱 (0) | 2021.07.26 |
[Python] BOJ/백준 2751번 수 정렬하기 2 (0) | 2021.07.24 |
[Python] BOJ/백준 2164번 카드2 (0) | 2021.07.24 |
[Python] BOJ/백준 1259번 팰린드롬수 (0) | 2021.07.22 |