SWExperAcademy Stack
# push
def push(item):
s.append(item)
# pop
def pop():
if len(s) ==0 : //스택이 비워있는 경우임
# underflow
return
else:
return s.pop(-1) // 마지막 값을 삭제하고 return 받음
def push(item):
s.append(item)
def pop():
if len(s) ==0:
print('Stack is Empty!!')
return
else:
return s.pop(-1)
s= []
push(1)
push(2)
push(3)
print("pop item =>" , pop())
print("pop item =>" , pop())
print("pop item =>" , pop())
리스트를 사용하여 스택을 구현하는 경우
=> 리스트의 크기를 변경하는 작업은 내부적으로 큰 overhead 발생
작업으로 많은 시간이 필요함.
🤗따라서 리스트의 크기가 변동되지 않도록 배열처럼 크기를 미리 정해놓고 사용하거나 동적 연결리스트를 이용하여 저장소를 동적으로 할당하여 스택을 구현해야함!
피보나치 수를 DP에 적용한 알고리즘
def fibo2(n):
f =[0,1]
for i in range(2,n+1):
f.append(f[i-1]+f[i-2])
return f[n]
DFS(깊이 우선 탐색)