自分用メモ

プログラミングとかのメモを書きたいです

競プロ典型 90 問:061 - Deck(★2)

問題

atcoder.jp

挑戦結果

  • 挑戦日:2021/10/26
  • 結果:解けた
  • 時間:5分

考えたこと

  • listだと先頭に入れるのが遅いのでダメ。
  • dequeを使えば実装するだけ。

公式解説

https://twitter.com/e869120/status/1402395219287371779

解説を読んだふりかえり

  • deque を知っていますか? とのこと。知っていてよかった。

ソース

from collections import deque
queue = deque()

Q = int(input())
for _ in range(Q):
    t,x = [int(x) for x in input().split()]
    if t==1:
        # 山の一番上に入れる
        queue.appendleft(x)
    elif t==2:
        # 山の一番下に入れる
        queue.append(x)
    elif t==3:
        # x番目のカード
        ans = queue[x-1]
        print(ans)