いつ解いたのか分からない問題が対象でしたので解説・・・正直コードの意図が分からない。
コードの解説
# coding: utf-8
n = int(input())
input_line = [int(input())%7 for _ in range(n)]
z = 0
for q in range(len(input_line)):
for w in range(q+1,len(input_line)):
for e in range(w+1,len(input_line)):
if (input_line[q]+input_line[w]+input_line[e]) % 7 == 0:
z += 1
print(z)
このコードはごり押しで「3つの整数を足した和が7で割り切れるような組合せがいくつあるか」を確認しています。正直解説できる部分が全くありません。
n = int(input())
input_line = [int(input())%7 for _ in range(n)]
z = 0
まず変数を初期化します。RANK Sの問題を見ているなら標準入力の説明はいりませんね。
配列に格納する前にint(input())%7
を行っていますが・・・数を少なくしたところで意味はあるのか。
for q in range(len(input_line)):
for w in range(q+1,len(input_line)):
for e in range(w+1,len(input_line)):
if (input_line[q]+input_line[w]+input_line[e]) % 7 == 0:
z += 1
すべての配列にある数値を地道に見ています。割り切れたら変数zに1を加えます。
print(z)
最後に変数zを出力して終了です。
感想
いつ解いたのか分かりません。ちなみにこのコード、最適化もされていません。ただの物量ごり押し作戦で解いています。
この作戦だったらC言語系統で書いたほうがいいのではと考えました。
早くするならそもそもアルゴリズムを見直すべきなんだよな・・・。でもこれで通るってことは、Pythonの処理速度は速くなっているということでもあるか。