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
- 2019회고
- 한빛미디어
- 서버로그
- 타코트론
- 프로그래머스
- 신영준
- 우분투비트확인
- 개발자를위한파이썬
- Xangle
- 놀이동산의슈퍼컴퓨터를작동시켜라
- 서구동구예비군훈련장
- 노트북덮개
- texttospeech
- 결과를얻는법
- 프로그라피
- tacotron
- 인천남중
- jaypark.dating
- graphicdriver
- 봉사활동
- 인하멘토링
- machinelearning
- 쇠막대기
- 심플소프트웨어
- 로그남기기
- 개발자회고
- 인하대학교
- CrossAngle
- 나는리뷰어다
- intell
Archives
- Today
- Total
jc.jang
알고리즘 - 스택 본문
알고리즘 스터디 1주차 스택
Intro
Oct 15, 2019 장지창
안녕하세요. 프로그라피 5기 Django팀 장지창입니다.
오늘은 알고리즘 스터디 1주차에 진행한 스택, 큐에 대해 알아보겠습니다. 저희는 매주 두 개의 자료구조 주제를 선정하여 관련 문제를 풉니다. 그리고 오프라인에서 개념 강의를 제공하는 방식으로 스터디가 진행되고 있습니다.
지금부터 아래에서 언급하는 내용은 제가 알고리즘 스터디를 준비하면서 스택, 큐에 대해 알아본 내용입니다. 혹시나 틀린 부분이 있거나 다른 생각이 있으시다면 댓글이나 이메일을 통해 서로 의견을 공유할 수 있으면 좋을 것 같습니다.
개념 설명
먼저, 스택입니다. 스택은 LIFO(Last In First Out) 순서를 따르는 선형 데이터 구조입니다.
스택의 모든 삭제 및 삽입은 스택 상단에서 수행됩니다. 그래서 마지막으로 추가된 요소가 스택에서 가장 먼저 제거됩니다. 이것을 LIFO라고 부릅니다.
스택에 어떤 연산이 있는지 알아볼까요? 스택에는 다음과 같은 연산이 있습니다.
- push: 스택에 새로운 요소를 추가합니다.
- pop: 스택에서 요소를 제거합니다.
- isEmpty: 스택이 비어있는지 확인합니다.
- peek: 스택의 맨 위 요소를 반환합니다.
그렇다면 스택을 어떻게 구현할까요? python tutorial 공식 문서의 리스트를 스택으로 사용하기를 살펴보겠습니다.
스택에 새로운 요소를 추가할 경우 append()를 사용하고 스택에서 요소를 제거할 경우 명시적인 인덱스 없이 pop()을 사용합니다. 예시를 참고해서 Stack Class를 만들면 아래와 같습니다.
class Stack():
def __init__(self):
self.stack = list()
def push(self, e):
self.stack.append(e)
def pop(self):
if self.stack:
return self.stack.pop()
def isEmpty(self):
if self.stack:
return False
return True
def peek(self):
if self.stack:
return self.stack[-1]
if __name__ == "__main__":
s = Stack()
s.push(1)
s.push(2)
s.push(3)
s.push(4)
print(s.pop())
print(s.peek())
print(s.isEmpty())
print(s.pop())
print(s.pop())
print(s.pop())
print(s.isEmpty())
관련 문제
이슈 정리
스터디 때 나온 이슈들 정리해서 추가 예정
참고
'개발 > 코딩인터뷰완전분석' 카테고리의 다른 글
코딩 인터뷰 완전 분석 - big O (0) | 2019.10.17 |
---|---|
알고리즘 - 큐 (0) | 2019.10.10 |
코딩 인터뷰 완전 분석 - 행동 문제 (0) | 2019.10.02 |
코딩 인터뷰 완전 분석 - 면접 전에 (0) | 2019.10.02 |
코딩 인터뷰 완전 분석 - 면접 과정 (0) | 2019.09.26 |
Comments