パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

Python ちょっとした意味がわからなかった問題

2022-12-07 | 新規1000万人ぐらいにプログラムをマスターしてもらいたい

プログラムがわからない方は実はちょっとした単語の意味が理解できていないだけなのではと気付かされた問題です。

 

イスラエルの方が作成した問題。

グーグルさんの問題文の翻訳

同じ合計のサブリスト

ゴール
特定のリストに、同じ長さと合計を持つ 2 つの異なるサブリスト (長さ 2 以上) があるかどうかを確認する必要があります。

入力
1 行目: 比較するポイント数の整数 N。
行 2 : N 個の整数のリスト。

出力
1 行目: 同じ長さと合計を持つ最短のサブリストの長さ。 そうでなければ「悲しい」
制約
3 <= N <= 100

 

何を言っているのかしばらくまったく理解できませんでした。

英文は簡単。翻訳してなぜかピンとこない

原因は

サブリスト

単語を引いてみますがよくわかりません。

 

ここでの意味はリストの中で、つながっている一部分のことでした。

 

意訳

数値のリストから同じ長さのつながっている範囲を切り取って、その合計が同じものが

ある時はその最も短い長さを、そうでないときはSADとお答えください。

(伝えにくい…)

 

プログラムの解説

答えの想定長さを2からn-1まで順に回していき(4行目)

リスト開始位置を0から順に想定長さが取れる場所まで回す(6)

その合計が同じものがあれば、そこで計算を終了してその想定長さを表示する。(8-10)

最期まで回してもみつからない場合はSADを表示する。

(やっぱり、うまく伝えられていない気がします)

 


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。