[Algorithm] 백준 10828 - 스택 in Python(파이썬)

하이초·2022년 7월 12일
0

Algorithm

목록 보기
15/94
post-thumbnail

💡 백준 10828:

스택 기본 구조 활용

🌱 코드 in Python

알고리즘: Stack

import sys

n = int(sys.stdin.readline())
stack = [] # stack list 생성
for i in range(n):
	cmd = sys.stdin.readline().split()
	if cmd[0] == 'push': 
		stack.append(int(cmd[1])) # 앞부터 순서대로 채움
	elif cmd[0] == 'pop':
		if len(stack) == 0: 
			print(-1)
		else:
			print(stack.pop()) # 뒤부터 제거
	elif cmd[0] == 'size':
		print(len(stack))
	elif cmd[0] == 'empty':
		if len(stack) == 0:
			print("1")
		else:
			print("0")
	elif cmd[0] == 'top':
		if len(stack) == 0:
			print("-1")
		else:
			print(stack[-1])

이번 문제는 스택 자료구조를 다루는 기본 문제였다

스택 자료구조에 관한 자세한 내용과 구현(in c)은 아래 포스트에서 확인!!
🍰 Array Stack 🍉 Linked Stack

스택의 특성인 LIFO구조를 알고 있다면 쉽게 풀 수 있는 문제였다!


🧠 기억하자

  1. 파이썬은 정말 문자열 비교가 쉽구나
    • "push" in cmd 이런 식으로 비교 문자열 내에 같은 문자열이 있는지도 확인 할 수 있다
  1. 리스트에 append, pop등이 다 구현되어 있어서 정말 큰 어려움이 없었다
    • append = 앞부터 차례대로 채움
    • pop = 뒤부터 차례대로 제거
    • insert = 추가 하는 원소의 인덱스를 지정할 수 있음

백준 10828 바로가기

profile
개발국대가 되는 그 날까지. 지금은 개발 응애.

0개의 댓글