[伯俊10828]スタックPython


スタック
  • フェーズ:Silver 4
  • 時間制限:0.5秒(追加時間なし)
  • メモリ制限:256 MB
  • アルゴリズム分類:データ構造、スタック
  • 質問する
    整数を格納するスタックを実装し、入力としてのコマンドを処理するプログラムを作成します.
    命令は全部で5種類ある.
    push X: 정수 X를 스택에 넣는 연산이다.
    pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
    size: 스택에 들어있는 정수의 개수를 출력한다.
    empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
    top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
    入力
    1行目に与えられるコマンド数N(1≦N≦10000).2行目からN行目までそれぞれ1つのコマンドがあります.与えられた整数は1以上であり、100000以下である.問題にない命令はない.
    しゅつりょく
    出力するコマンドが発行されるたびに、各行に1つのコマンドが出力されます.
    サンプルI/O

    Algorithm
    Code
    import sys
    input = sys.stdin.readline
    
    # 입력
    N = int(input())
    stack = []
    for _ in range(N):
        order = input()
        
        if order[:4] == 'push':
            _, num = order.split()
            stack.append(int(num))
            
        elif order[:-1] == 'pop':
            if stack:
                print(stack[-1])
                stack.pop()
            else:
                print(-1)
            
        elif order[:-1] == 'size':
            print(len(stack))
        
        elif order[:-1] == 'empty':
            if stack:
                print(0)
            else:
                print(1)
                
        else:
            if stack:
                print(stack[-1])
            else:
                print(-1)
    メモリ:30864 KB
    時間:80ミリ秒