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 |
Tags
- w3school
- 기초
- dynamic
- dfs
- W3Schools
- guide
- Programming
- 파이썬
- parameter
- c++
- Unreal Engine 5
- UE5
- Tutorial
- String
- C#
- Unity
- Class
- 시작해요 언리얼 2022
- python
- 프로그래밍
- 오류
- DP
- 재귀
- loop
- github
- 문제풀이
- Material
- Algorithm
- 백준
- Basic
Archives
- Today
- Total
행복한 개구리
백준 22.03.23. 10828번 - 스택 본문
스택 - 위키백과, 우리 모두의 백과사전
스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 끝먼저내기 목록(Pushdown list)이라고도 한다. 스택은 한 쪽 끝에서만 자료를 넣거나 뺄
ko.wikipedia.org
스택에 대한 설명입니다.
자료구조 스택에 대해서 모른다면 보는걸 추천합니다.
import sys
input = sys.stdin.readline
print = sys.stdout.write
def push(s, num):
s.append(num)
def pop(s):
if len(s) == 0:
return -1
else:
return s.pop(-1)
def size(s):
return len(s)
def empty(s):
if len(s) == 0:
return 1
else:
return 0
def top(s):
if len(s) == 0:
return -1
else:
return s[-1]
def command(s, *c):
if c[0] == "push":
push(s, c[1])
elif c[0] == "pop":
return pop(s)
elif c[0] == "size":
return size(s)
elif c[0] == "empty":
return empty(s)
elif c[0] == "top":
return top(s)
n = int(input())
stack = []
for i in range(n):
c = input().split()
if len(c) == 2:
command(stack, c[0], c[1])
else:
print(str(command(stack, c[0])) + "\n")
- 스택(stack)은 후입선출(Last In First Out, LIFO)의 성질을 가집니다.
- top은 스택의 가장 마지막에 저장된 것을 보여줍니다.
- pop은 스택에 가장 마지막에 저장된 것을 삭제합니다.
- push는 스택에 새로운 데이터를 저장합니다.
- empty는 스택이 비어있는지 여부에 대해 반환합니다.
- 이러한 성질을 이용하여 각 메서드 역할을 하는 함수를 만들어주었습니다.
- push의 경우에 데이터를 저장하는 것이므로 반환값이 없습니다.
- 입력값이 커맨드와 숫자일지, 커맨드만 입력될지 모르기때문에 입력값을 변수 하나로 받고 split()메서드를 이용하여 입력값이 복수면 리스트의 인덱스로 요소를 지정하여 함수에 매개변수로서 할당해줍니다.
- sys.stdout.write의 매개변수는 str형식이어야합니다. 따라서 str로 형변환을 해준 뒤 출력합니다.
'Algorithm > BaekJoon' 카테고리의 다른 글
백준 22.04.02. 1966번 - 프린터 큐 (0) | 2022.04.02 |
---|---|
백준 22.03.24. 10773번 - 제로 (0) | 2022.03.24 |
백준 22.03.23. 2004번 - 조합 0의 개수 (0) | 2022.03.23 |
백준 22.03.23. 1676번 - 팩토리얼 0의 개수 (0) | 2022.03.23 |
백준 22.03.21. 9375번 - 패션왕 신해빈 (0) | 2022.03.21 |