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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

4475閲覧

ArCoderの実行時エラー

monomo123

総合スコア8

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/03/05 05:36

編集2020/03/05 05:40

問題文はhttps://atcoder.jp/contests/abc123/tasks/abc123_bです。

pythonで実行してみたのですが、実行時エラーとなってしまいました。
どなたか教えていただけないでしょうか。。
よろしくお願い致します。

AtCoderのルールとしては、個人で戦う必要があり、数人で結託し、解答する行為は禁止されていますが、過去の問題であることから、質問をさせていただきました。

以下、自分の作成した解答になります。
考え方としては、まず10の倍数の数字をすべて足し、その他の数字の1の位の数字を抽出し比較します。
比較した数字の0以外の最小値以外のそれぞれの数字を10にして足し合わせ、最小値の数字を足す。そのあとに比較した数字の他の位を足し合わせました。

例)
A=7,20,29,35,120
ans=140
C=7,0,9,5,0
D=0,0,20,30,0
E=9,7,5
ans=140+(9+1)+(7+3)=160
ans=160+20+30+5=215

python3

1A=[int(input()) for i in range(5)] 2ans=0 3for i in range(5): 4 if A[i]%10==0: 5 ans+=A[i] 6 A[i]=0 7B=[str(i) for i in A] 8C=[B[i][-1] for i in range(5)] 9C=[int(C[i]) for i in range(5)] 10D=[None]*5 11for i in range(5): 12 D[i]=int(B[i])-int(C[i]) 13E=list([n for n in(sorted(C,reverse=True)) if n>0]) 14for i in range(len(E)-1): 15 ans+=10 16ans=ans+E[-1]+int(sum(D)) 17print(ans)

説明が下手で申し訳ありません。
よろしくお願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nanami12

2020/03/05 05:40

実行時のエラー およびコードを<code>をおしてその中にコードを記載して下さい パイソンはネストが重要なので
monomo123

2020/03/05 05:45

コードを記載し直しました。 実行時のエラーはAtCoderに提出した際に、Reと出てしまったため、エラーコードは見当たりませんでした。
LouiS0616

2020/03/05 06:25

入出力例は問題無くクリアするのですか?
nanami12

2020/03/05 06:39

文字列と数字が混合してませんか?
monomo123

2020/03/05 07:19

例としてあげたものは問題なくクリアすることができます。また、AtCoderに例として載ってあるものもクリアすることができました。 文字列と数字が混合してるのは、1桁目の数字を取り出したかったために、文字列を取り入れました。 1桁目の数字を取り出すのに、その方法しかわからなかったため、混合してしまいました。
guest

回答1

0

ベストアンサー

今のコードだと以下のような入力が来た場合にEの要素が0個となり、IndexErrorになります。

$ python test.py 10 20 30 40 50 Traceback (most recent call last): File "tera.py", line 16, in <module> ans=ans+E[-1]+int(sum(D)) IndexError: list index out of range

Eの要素数が0だった場合の処理が必要になるのではないでしょうか。

投稿2020/03/05 08:47

mistn

総合スコア1191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

monomo123

2020/03/06 02:22

そこがエラーとなる原因だったんですね、、、 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問