스택
배열의 끝에서만 데이터를 접근할 수 있는 선형 자료구조
후입선출(LIFO)구조임
시간복잡도는 모두 O(1)임
python에서 스택 구현
LIST를 이용해 구현을 해볼 것이다.
- push() 스택의 가장 마지막 부분에 원소를 추가한다.
stack = [1,2]
stack.append(3)
>> [1,2,3]
list의 append를 이용
- pop() 스택 가장 마지막 있는 원소를 삭제하고 그 원소를 반환
stack = [1,2,3]
stack.pop()
>> 3
- top() 스택 가장 마지막에 있는 원소 가져오기
stack = [1,2,3]
stack[-1]
>> 3
- peek() 스택 가장 마지막에 있는 원소 가져오기
stack = [1,2,3]
stack[-1]
>> 3
top, peek 둘 다 list의 마지막 인덱스의 값을 가져오기 위해 list [-1] 이용
- empty() 스택이 비어 있는지 확인
stack = [1,2,3]
if not stack:
print('is empty')
else:
print('is not empty')
>> is empty
if문을 이용해 list가 비었는지 확인 후 비어있다면, 'is empty' 출력 비어있지 않다면 'is not empty' 출력
- size() 스택 크기 확인
stack = [1,2,3]
len(stack)
>> 3
리스트의 길이를 구해주는 len을 사용하여 스택의 크기를 구해 줌
스택을 익히기에 괜찮은 문제가 있다. 한 번 풀어보면 좋을 것 같다!
https://www.acmicpc.net/problem/10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
'python' 카테고리의 다른 글
[python]google-play-scraper: 구글 플레이스토어, app-store-scraper: 애플 앱스토어 앱리뷰 크롤링 (0) | 2023.03.08 |
---|---|
[python]리스트 컴프리헨션(List Comprehension) (0) | 2023.03.08 |
[python]투포인터 (1) | 2023.01.07 |
[python]리스트(List) (3) | 2023.01.05 |
[python]문자열 포멧팅 출력 (0) | 2023.01.05 |