
스택 개념
스택(stack)의 어원은 "쌓는다"
스택의 개념은
블럭을 쌓는 것처럼, 아래에서부터 순차적으로 데이터를 넣고
데이터를 출력? 뽑아낼 때는 위에서부터 빼는 개념이다.
FIFO
First In(먼저 들어간게), last Out(나중에 나온다)
스택 정의
파이썬에서는 Java와 같은 스택을 별도로 제공하고 잇지 않다.
Java 예시
import java.util.Stack; //import
Stack<Integer> stack = new Stack<>(); //int형 스택 선언
Stack<String> stack = new Stack<>(); //char형 스택 선언
파이썬에서는 배열을 활용해서 그냥 list = [] 이와 같이 사용한다.
- ifFull() : 스택에 들어있는 데이터 개수가 maxsize인지 확인 return값 True or False
- isEmpty() : 스택이 비어있는지 확인 return값 True or False
- push(item) : 스택에 데이터 넣기
- pop() : return값 배열의 마지막 원소(item)
- top : -1부터 시작해 원소의 개수에서 -1을 한 값.
책에서 아주 쉽고 정확하게 설명해준다.
스택 세부 동작에 대해 조금 더 자세히 알아보기
Push 동작 과정
1. 꽉찼는지 확인 : isFull
2. top=top+1
3. data추가

Pop 동작 과정
1. 빈 스택인지 확인 : IsEmpty()
2. top = top-1
3. 데이터 출력 : pop()

하지만!!!!
파이썬에서는 사실 리스트 동적으로 관리되므로
max_size나 isfull()함수는 별도로 구현하지 않고
isEmpty() 함수는 len(statck)==0으로 대체한다.
stack = [] #리스트로 푼다.
def push(stack,item):
stack.append(item) # push의 개념을 append로 구현
print("데이터가 추가되엇습니다.")
def pop(stack):
if len(stack)!=0 :
return stack.pop()
else :
print("빈 스택")
return None
한번 더
하지만!!!!하지만!!!!
위에 push(), pop()함수 구현한 부분을 보면
파이썬에서 그냥 append(), pop()메서드 호출한 게 전부이기 때문에
저것 마저도 별도로 구현할 필요가 없다.
끝!
♬ 자료 출처 - 책
코딩 테스트 합격자 되기 - 파이썬 편

이 포스팅의 모든 내용은 해당 책의 내용을 바탕으로 하고 있습니다.
감사합니다.
'프로그래밍 이야기 > 파이썬 코딩 테스트 스터디' 카테고리의 다른 글
파이썬 코딩테스트 스터디 3주차 #4 - 짝지어 제거하기 (0) | 2024.07.07 |
---|---|
파이썬 코딩테스트 스터디 3주차 #3 - 10진수를 2진수로 변환하기 (0) | 2024.07.07 |
파이썬 코딩테스트 스터디 2주차 #7 - 문제 06 실패율 (0) | 2024.07.03 |
파이썬 코딩테스트 스터디 2주차 #6 - 문제 05 행렬의 곱 (0) | 2024.06.24 |
파이썬 코딩테스트 스터디 2주차 #5 - 문제 04 모의고사 - 수포자 (0) | 2024.06.14 |