====== 스택 ====== ===== 풀이 ===== * '스택'을 이용해서 기본적인 연산들을 수행할 수 있는지 물어보는 기본 문제. 유사품으로 [[ps:problems:boj:10845]], [[ps:problems:boj:10866]]이 있다. * 파이썬에서는 그냥 리스트를 쓰면 스택의 연산들을 모두 수행 가능하다 * 주어진 연산들은 모두 O(1)에 처리되므로 총 시간복잡도는 O(n). ===== 코드 ===== """Solution code for "BOJ 10828. 스택". - Problem link: https://www.acmicpc.net/problem/10828 - Solution link: http://www.teferi.net/ps/problems/boj/10828 """ import sys def main(): 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': print(stack.pop() if stack else '-1') elif command[0] == 'size': print(len(stack)) elif command[0] == 'empty': print('0' if stack else '1') elif command[0] == 'top': print(stack[-1] if stack else '-1') if __name__ == '__main__': main() {{tag>BOJ ps:problems:boj:실버_4}}