質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • Python 3.x

    5322questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

aojでruntime errorがでます

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 94

pylat

score 1

プログラミング始めたばかりの初心者です。
aojで ALDS1_3_Cを解いたところ何回やってもruntime errorが出てしまいます。
macを使っているのですが、いつもはターミナルで実行しながら細かいミスなどがないかチェックしてます。
しかし、今回ターミナルではうまく実行できたのにも関わらずruntime errorが出るので質問させていただきます。
ソースコードは以下の通りです。(ソースコードの汚さには目を瞑ってください。。笑)

def insertx(l, x):
    l.insert(0, x)

def deletex(l, x):
    l.remove(x)

def deleteFirst(l):
    l.pop(0)

def deleteLast(l):
    l.pop()

n = int(input())
a=[]
for i in range(n):
    operation, num = input().split()
    num = int(num)
    if operation == "insert":
        insertx(a, num)
    elif operation == "delete":
        deletex(a, num)
    elif operation == "deleteFirst":
        deleteFirst(a)
    else:
        deleteLast(a)

print(*a)

よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

for i in range(n):
    operation, num = input().split()
    ...

deleteFirstおよびdeleteLastという入力を上手く捌けていないのが原因です。
入力を分割する前に、これらの命令に該当しないか調べるようにしましょう。

入出力例2を使えばデバッグが捗るかと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/26 01:19

    なるほど!ありがとうございます!!
    明日試してみます!

    キャンセル

0

ついでに双方向連結リストというデータ構造も勉強して見ると良いかも。
左端のappend/popがO(1)になります。

collectionsのdequeというものです。

https://docs.python.jp/3/library/collections.html#collections.deque


さらに速くしたいのであれば要素一覧をdictで保持することを検討してみてください。
append/popにO(1)の操作が増えますが、代わりに存在しない要素のremoveがO(1)でできるようになります。
要素の個数に気をつけないとバグが発生するので、要注意です。

メモリが倍ほど増えますので、そちらを気をつけないといけない時もあるかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    座標を使った演算方法

    a = raw_input() # 8 3 3 b = a.split() n = b[0] #8 p = b[1] #3 d = b[2] #3 x = [] y = [] P

  • 解決済

    関数の引数を減らす方法(グローバル変数の利用?クロージャ?)

    悩んでいること 自作の関数について引数が多いと使い勝手が悪いため、引数を少なくしたいです。 change_point(dir, distance, width, heigh

  • 解決済

    outputがでず、困っています。

    下記の質問で、outputを出そうとするとエラーになってしまいます。解決方法をご存知でしょうか。 ifname=="main":の後に、エラーがでてきます。。 A user

  • 解決済

    if:条件NG時の再計算

    質問事項 質問タイトルがわかり辛くすみません。 pythonの基礎勉強をしています。 下記補足に記したように、whileループの中にif文を2つ作り、各々ifの条件次第で、各々

  • 解決済

    self.rect.xなどに値が代入されない

    壁のあたり判定をつけたいのですがflgだけ確認でき、値が代入されません。 解決方法、こうしたほうがいい点ありましたらお願いします import pygame from pyga

  • 受付中

    ○○ is not definedが解決できない

    前提・実現したいこと Pythonの理解を深める為にjavaのコードを Pythonに書き換えております。 javaでは下記の関数はprivate関数でしたので __diges

  • 解決済

    Python3 指示通り計算できるプログラム 条件分岐

    目標) ボードゲームをつくりたい 二人用のゲームで、財産 0 からスタートとして、ゴール時点の財産を比較する それぞれプレイヤー1、2と呼び、彼らの財産にコンピュータの指示通りに

  • 解決済

    python 世界のナベアツ問題について

    v = input('好きな数を入力してください ') v = int(v) def nabeatsu(v): if v % 3 == 0: return '三の倍数' elif 

同じタグがついた質問を見る

  • Python 3.x

    5322questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。