사용자 도구

사이트 도구


ps:problems:boj:10828

스택

ps
링크acmicpc.net/…
출처BOJ
문제 번호10828
문제명스택
레벨실버 4
분류

스택

시간복잡도O(n)
인풋사이즈n<=10000
사용한 언어Python
제출기록29200KB / 80ms
최고기록60ms
해결날짜2021/07/30

풀이

  • '스택'을 이용해서 기본적인 연산들을 수행할 수 있는지 물어보는 기본 문제. 유사품으로 , 이 있다.
  • 파이썬에서는 그냥 리스트를 쓰면 스택의 연산들을 모두 수행 가능하다
  • 주어진 연산들은 모두 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()

토론

댓글을 입력하세요:
U᠎ Y Z X K
 
ps/problems/boj/10828.txt · 마지막으로 수정됨: 2021/10/15 16:19 저자 teferi