スポンサーリンク

【Python】AtCoder Beginner Contest 053 A,B,C問題 解答

スポンサーリンク
スポンサーリンク
この記事は約2分で読めます。

A問題 ABC/ARC

B問題 A to Z String

文字列sの中から

‘AADZZ’ などAとZが複数ある場合は、入力例より最初のAと最後のZを使うようです。

find()はカッコの中で指定した引数を文字列の中から探します。左から探していくので最初の位置を返します。

rfind()は指定した文字列の最後の位置を返します。(右から探した場合の最初の位置)

関連

Pythonで文字列を検索(〜を含むか判定、位置取得、カウント)

C問題 X: Yet Another Die Game

方針

最短で一定以上の数字になれば良いので、サイコロの目は値が大きい6と5を交互に出せばよいです。

6と5しか出ないということは6と5の目がでる2回を1セットとして11が繰り返し出ると考えることができます。

そのため、11で割った数×2と以下の3つのうちどれかを加えた数字が答えになります。

※×2としているのは、6と5を交互に出しているため。

①x÷11の余りが0 (11で割り切れた場合)→11//2*2が答え

②x%11の余りが6以下ならあと1回の操作だけなので、11//2*2+1

③x%11の余りが7~10ならあと2回の操作だけなので、11//2*2+2

解答

 

コメント