マカロニペンギンの健忘録

特にテーマを決めているわけじゃないが、私が気になったことを書いていく予定です。

Pythonerの憂い その1

2023年03月20日 | プログラミング
いきなりですが「Atcoderやってますかぁ~」(アントニオ猪木風)

昨日、ABC294(AtCoder Beginner Contest 294)にチャレンジしたのですが、4問目の内容は理解できて、プログラムまで大体作成できた(実際には少々読み間違えがあったのも事実)のですが、タイムオーバー(TLE)になってしまい、最後までたどり着くことができませんでした。
私が使っているプログラム言語はPythonです。
C++のクラスを勉強した時に挫折した私としては救世主に近い。生まれ変わってもPythonに出会いたいと思っているほどだ。しかし、実行速度が遅い。Pythonのせいにしたくはないが、今回のTLEはPythonの実行速度が関係しているのではないかと思っている。
恥ずかしながら、私が作成したプログラムを公開する
n , q = map(int,input().split())
call  = 1
uke = set()
e1 = e2 = 0
for i in range(q):
    e = input()
    if e[0] == "1":
        uke.add(call)
        call += 1
    if e[0] == "2":
        e1 , e2 = map(int,e.split())
        uke.remove(e2)
    if e[0] == "3":
        print(min(uke))
(このプログラムはこのリンクを辿っても見ることができる)

まず、このプログラムは正しいと仮定しよう。
読み込みデータは25コ、Pythonで実行した時は7つにTLEがでて、PyPy3で実行した時は2つにTLEが出てしまいました。

きっと、もうひとひねり、ふたひねりが必要なのでしょうが、オレには見当たらない😢 
もう少し、がんばってみます。 ただの愚痴でした。