-
[Python] 백준 10828 스택Python_알고리즘 2021. 7. 18. 02:39
문제 바로가기
문제분석
# 파이썬은 스택 자료구조를 따로 제공하지 않고, 기본 클래스인 리스트나 링크드리스트를 통해 구현한다.
# push X: 정수 X를 스택에 넣는 연산이다.
# pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
# size: 스택에 들어있는 정수의 개수를 출력한다.
# empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
# top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.# 명령어가 split으로 나눈 인덱스 0번에 있다면 해당 명령을 구현한다.
문제풀이
import sys n = int(sys.stdin.readline()) stack = [] # 정수를 저장할 빈 리스트(스택) 초기화 for _ in range(n): # 주어지는 명령어 수만큼 반복 한다. command = sys.stdin.readline().split() if command[0] == 'push': stack.append(command[1]) elif command[0] == 'pop': if not stack: print(-1) else: print(stack.pop()) elif command[0] == 'size': print(len(stack)) elif command[0] == 'empty': if not stack: print(1) else: print(0) elif command[0] == 'top': if not stack: print(-1) else: print(stack[-1])
# 정수를 저장할 빈 리스트(스택) 초기화 한다.
# 주어지는 명령어 수만큼 반복 한다.
# 명렁어 입력을 받는데, push 같은 경우는 넣을 값도 들어오니까 공백을 기준으로 명렁어와 그 명령의 결과로 들어갈 값을 나눠서 받는다.
# pop과 top은 조건이 있으므로 이중 조건문으로 처리한다.
# 스택은 last in first out이니까 가장 마지막 인덱스가 제일 위에 있다.
'Python_알고리즘' 카테고리의 다른 글
[Python] 백준 9012 괄호 (0) 2021.07.21 [Python] 백준 10773 제로 (0) 2021.07.20 [Python] 백준 2805 나무 자르기 (0) 2021.07.17 [Python] 백준 11651 좌표 정렬하기 2 (0) 2021.07.16 [Python] 백준 11729 하노이 탑 이동 순서 (0) 2021.07.15