2021. 1. 6. 01:48γπ Algorithm/πͺπ» Python λ¬Έμ νμ΄
λ¬Έμ μ€λͺ
μ μλ₯Ό μ μ₯νλ νλ₯Ό ꡬνν λ€μ, μ λ ₯μΌλ‘ μ£Όμ΄μ§λ λͺ λ Ήμ μ²λ¦¬νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
λͺ λ Ήμ μ΄ μ¬μ― κ°μ§μ΄λ€.
- push X: μ μ Xλ₯Ό νμ λ£λ μ°μ°μ΄λ€.
- pop: νμμ κ°μ₯ μμ μλ μ μλ₯Ό λΉΌκ³ , κ·Έ μλ₯Ό μΆλ ₯νλ€. λ§μ½ νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
- size: νμ λ€μ΄μλ μ μμ κ°μλ₯Ό μΆλ ₯νλ€.
- empty: νκ° λΉμ΄μμΌλ©΄ 1, μλλ©΄ 0μ μΆλ ₯νλ€.
- front: νμ κ°μ₯ μμ μλ μ μλ₯Ό μΆλ ₯νλ€. λ§μ½ νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
- back: νμ κ°μ₯ λ€μ μλ μ μλ₯Ό μΆλ ₯νλ€. λ§μ½ νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
μ λ ₯νμ
첫째 μ€μ μ£Όμ΄μ§λ λͺ λ Ήμ μ N (1 ≤ N ≤ 2,000,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° Nκ°μ μ€μλ λͺ λ Ήμ΄ νλμ© μ£Όμ΄μ§λ€. μ£Όμ΄μ§λ μ μλ 1λ³΄λ€ ν¬κ±°λ κ°κ³ , 100,000λ³΄λ€ μκ±°λ κ°λ€. λ¬Έμ μ λμμμ§ μμ λͺ λ Ήμ΄ μ£Όμ΄μ§λ κ²½μ°λ μλ€.
μΆλ ₯νμ
μΆλ ₯ν΄μΌνλ λͺ λ Ήμ΄ μ£Όμ΄μ§ λλ§λ€, ν μ€μ νλμ© μΆλ ₯νλ€.
νμ΄ κ³Όμ
dequeλ₯Ό μ΄μ©νμ¬ Queue μλ£κ΅¬μ‘°λ₯Ό ꡬνν΄λ³΄μλ€.
dequeμ Queueμ λν μλ£λ μλ ν¬μ€ν μ μ°Έκ³ νλ©΄ μ’μ κ² κ°μ΅λλ€ : )
from collections import deque
from sys import stdin
class queue(object):
def __init__(self):
self.q = deque()
def push(self, item):
self.q.append(item)
def pop(self):
if self.empty() != 1:
return self.q.popleft()
else:
return -1
def size(self):
return len(self.q)
def empty(self):
if self.size() == 0:
return 1
else:
return 0
def front(self):
if self.empty() != 1:
return self.q[0]
else:
return -1
def back(self):
if self.empty() != 1:
return self.q[-1]
else:
return -1
n = stdin.readline()
q = queue()
for _ in range(int(n)):
run = list(stdin.readline().split())
if run[0] == "push":
q.push(int(run[1]))
elif run[0] == "pop":
print(q.pop())
elif run[0] == "size":
print(q.size())
elif run[0] == "empty":
print(q.empty())
elif run[0] == "front":
print(q.front())
else:
print(q.back())
'π Algorithm > πͺπ» Python λ¬Έμ νμ΄' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Python - λ°±μ€ 2164] μΉ΄λ2 (0) | 2021.01.06 |
---|---|
[Python - νλ‘κ·Έλλ¨Έμ€ Level1] μμ° (0) | 2021.01.04 |
[Python - νλ‘κ·Έλλ¨Έμ€ Level1] λΉλ°μ§λ (0) | 2021.01.04 |