https://www.acmicpc.net/problem/10828
π‘λ¬Έμ
μ μλ₯Ό μ μ₯νλ μ€νμ ꡬνν λ€μ, μ λ ₯μΌλ‘ μ£Όμ΄μ§λ λͺ λ Ήμ μ²λ¦¬νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
λͺ λ Ήμ μ΄ λ€μ― κ°μ§μ΄λ€.
- push X: μ μ Xλ₯Ό μ€νμ λ£λ μ°μ°μ΄λ€.
- pop: μ€νμμ κ°μ₯ μμ μλ μ μλ₯Ό λΉΌκ³ , κ·Έ μλ₯Ό μΆλ ₯νλ€. λ§μ½ μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
- size: μ€νμ λ€μ΄μλ μ μμ κ°μλ₯Ό μΆλ ₯νλ€.
- empty: μ€νμ΄ λΉμ΄μμΌλ©΄ 1, μλλ©΄ 0μ μΆλ ₯νλ€.
- top: μ€νμ κ°μ₯ μμ μλ μ μλ₯Ό μΆλ ₯νλ€. λ§μ½ μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
μ λ ₯
첫째 μ€μ μ£Όμ΄μ§λ λͺ λ Ήμ μ N (1 ≤ N ≤ 10,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° Nκ°μ μ€μλ λͺ λ Ήμ΄ νλμ© μ£Όμ΄μ§λ€. μ£Όμ΄μ§λ μ μλ 1λ³΄λ€ ν¬κ±°λ κ°κ³ , 100,000λ³΄λ€ μκ±°λ κ°λ€. λ¬Έμ μ λμμμ§ μμ λͺ λ Ήμ΄ μ£Όμ΄μ§λ κ²½μ°λ μλ€.
μΆλ ₯
μΆλ ₯ν΄μΌνλ λͺ λ Ήμ΄ μ£Όμ΄μ§ λλ§λ€, ν μ€μ νλμ© μΆλ ₯νλ€.
μμ μ λ ₯
14
push 1
push 2
top
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
top
μμ μΆλ ₯
2
2
0
2
1
-1
0
1
-1
0
3
ν΄μ€
κΈ°μ‘΄μ½λ (μκ°μ΄κ³Ό)
N = int(input())
stack = []
for i in range(N):
func = input()
parts = func.split()
if parts[0] == "push":
stack.append(int(parts[1]))
elif parts[0] == "pop":
if len(stack) == 0:
print(-1)
else:
print(stack[-1])
stack.pop()
elif parts[0] == "size":
print(len(stack))
elif parts[0] == "empty":
if len(stack) == 0:
print(1)
else:
print(0)
else: #top
if len(stack) == 0:
print(-1)
else:
print(stack[-1])
π‘ λ°λ³΅λ¬ΈμΌλ‘ μ λ ₯μ μ¬λ¬λ² λ°λ κ²½μ°μ input() μΌλ‘ μ λ ₯μ λ°μΌλ©΄ μκ°μ΄κ³Όκ° λ°μν μ μλ€.
μ΄μ sys.stdin.readline()μ μ΄μ©νμ¬ μ λ ₯μ λ°μμΌ νλ€.
μμ μ½λ
import sys
N = int(input())
stack = []
for i in range(N):
parts = sys.stdin.readline().split()
if parts[0] == "push":
stack.append(int(parts[1]))
elif parts[0] == "pop":
if len(stack) == 0:
print(-1)
else:
print(stack[-1])
stack.pop()
elif parts[0] == "size":
print(len(stack))
elif parts[0] == "empty":
if len(stack) == 0:
print(1)
else:
print(0)
else:
if len(stack) == 0:
print(-1)
else:
print(stack[-1])
'python algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ°±μ€ 1158: μ€μΈνΈμ€ λ¬Έμ (0) | 2024.05.30 |
---|---|
λ°±μ€ 1874λ²: μ€ν μμ΄ (0) | 2024.05.19 |
python ν¨μ λͺ¨μ (0) | 2024.05.18 |