Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- database
- js
- Project
- JS #프로젝트
- https://m.blog.naver.com/tt2t2am1118/221010125300
- prj
- https://youtube.com/playlist?list=PLuHgQVnccGMA5836CvWfieEQy0T0ov6Jh&si=FTaYv8m21EhO-A2K
- await
- 혼프
- callback
- sql
- addEventListener
- 동기
- webpack
- object
- json
- Import
- 게임
- 비동기
- ajax
- 참고블로그
- slow and steady
- promise
- db
- mysql
- Porject
- async
- execCommand
- eport
- setTimeout()
Archives
- Today
- Total
C-log
심심풀이 땅콩🥜 : 스택(Stack) 본문
728x90
04. 파이썬으로 스택 구현하기
## 스택(Stack)은 자료를 쌓아놓은 것이다. 스택은 서류나 책 위에 다른 서류나 책을 쌓아 올리는 형태다. 따라서 자료를 꺼낼 때는 맨 위부터 꺼내야 한다. 즉, 마지막에…
wikidocs.net
스택은 알고리즘을 알기전에 미리 알아야할 자료구조 중 하나이다. 스택은 LIFO(Last In First Out)로 구성 되어 있으며 배열로 값을 정렬하고 이것들을 push와 pop으로 추가하고 삭제 할 수 있다.
class Stack:
def __init__(self) -> None:
self.stack = []
def is_empty(self):
return len(self.stack) == 0
def is_push(self, item):
self.stack.append(item)
def is_pop(self):
if not self.is_empty():
return self.stack.pop()
else:
return None
def peek(self):
if not self.is_empty():
return self.stack[-1]
else:
return None
def size(self):
return len(self.stack)
위 코드를 실행하면 아래와 같다.
stack = Stack()
stack.is_push(10)
stack.is_push(20)
stack.is_push(30)
# 현재 stack의 모습
# 30
# 20
# 10
print(stack.is_pop()) # 30 -pop
print(stack.peek()) # 20 - peek
print(stack.size()) # 2
print(stack.is_empty()) # False
위와 같이 Stack의 코드를 알아 봤다. 우리가 조금 더 응용을 해볼 수 있다면 이전에 알아 봤던 정렬 알고리즘을 사용해서 해당 값이 push 될 때 내가 원하는 방향이나 순서로 값을 재정렬 해볼 수도 있을 것이다. 다음 시간에는 Heap을 알아 볼 것이다.
728x90
Comments