【Python】AtCoder Beginner Contest241 A,B問題 解答・解説

この記事は約2分で読めます。

 

A問題 Digit Machine

方針

入力値をリストとして保存します。

画面に表示されている数字をリストの要素番号とし、次に画面に表示する番号とします。

ボタンを押すという操作によって画面が切り替わり、この操作は3回だけ行います。

はじめに、画面には0が表示されています。

リストの要素番号は、1つ目を0、2つ目を1・・・という具合に数えます。

入力例1で考えてみます。入力値:list = [9, 0, 1, 2, 3, 4, 5, 6, 7, 8]

初期状態:画面→0

ボタン操作1回目:list[0]は9のため、画面→9

ボタン操作2回目:list[9]は8のため、画面→8

ボタン操作3回目:list[8]は7のため、画面→7

入力例2で考えてみます。入力値:list = [4, 8, 8, 8, 0, 8, 8, 8, 8, 8]

初期状態:画面→0

ボタン操作1回目:list[0]は4のため、画面→4

ボタン操作2回目:list[4]は0のため、画面→0

ボタン操作3回目:list[0]は4のため、画面→4

解答

[1]

画面に表示されている数字nをlistの添字(要素番号)として、新たにnに代入します。

こうすることで、次に画面に表示されている数字がlist[n]に切り替わります。

これを3回繰り返し、最後にnに代入されている数字をprintで出力しました。

B問題 Pasta

方針

M回の食事を行います。

N本のパスタのうち、1つを選んで食べます。※問題文より必ずM<Nです。

N本のパスタはそれぞれ長さが決まっています。(Aの値)

i回目の食事では、食べるパスタの長さが決まっています。(Bの値)

i回目の食事で食べる長さBiのパスタのがN本のパスタの中にあるかを確認します。

解答

 

コメント