boj/backjun-10845-python


質問する



に答える

  • の整数を格納するキューを実装し、入力としてのコマンドを処理するプログラムを記述する.
  • コマンドは6種類あります.
    1)push X:整数Xをキューに入れる演算.
    2)pop:キューから先頭の整数を減算して出力します.キューに整数がない場合は、-1が出力されます.
    3)size:出力キュー内の整数の個数.
    4)空:キューが空の場合、1または0が出力されます.
    5)front:出力キューの一番前の整数.キューに整数がない場合は、-1が出力されます.
    6)back:出力キューの一番後ろの整数.キューに整数がない場合は、-1が出力されます.
  • コード#コード#

    # boj, 10845: 큐, python3
    from collections import deque
    
    def push(queue, x):
        queue.appendleft(x)
    
    def pop(queue):
        if not queue:
            print(-1)
        else:
            print(queue[-1])
            queue.pop()
    
    def size(queue):
        print(len(queue))
    
    def empty(queue):
        if not queue:
            print(1)
        else:
            print(0)
    
    def front(queue):
        if queue:
            print(queue[-1])
        else:
            print(-1)
    
    def back(queue):
        if queue:
            print(queue[0])
        else:
            print(-1)
    
    def solve(order_list):
        queue = deque()
    
        for x in order_list:
            if x == 'pop':
                pop(queue)
            elif x == 'size':
                size(queue)
            elif x == 'empty':
                empty(queue)
            elif x == 'front':
                front(queue)
            elif x == 'back':
                back(queue)
            else:
                push_num = x.split()[-1]
                push(queue, push_num)
    
    if __name__ == '__main__':
        n = int(input())
        order_list = [str(input()) for _ in range(n)]
    
        solve(order_list)

    結果



    ソース&ハーブ


    boj
    github