【ABC251】Atcoder Beginner Contest 251 A,B,C問題 解答・解説【Python】

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

 

A – Six Characters

方針

・入力された文字列を保存した変数”s”の値を別の変数”S”に保存

→”S”は文字列の長さが6に達したかを判定するために使用

→”s”は”S”の文字列の長さが6未満の場合に、もう一度文字列を結合するために使用

→変数を2つ用意するのは、結合されて長くなった文字列を再結合することを防ぐため

・”S”の長さが6になるまで以下の操作を繰り返す

・”+”を用いて”S”に”s”を結合

解答

コード+コメント

コード

参考

Pythonで文字列を結合する方法を現役エンジニアが解説【初心者向け】 | TechAcademyマガジン

B – At Most 3 (Judge ver.)

方針

・おもりは3つまで選ぶことができる(1つ、2つでも良い)

・N個の重りから1個,2個,3個のそれぞれを選ぶパターンに分けて調べる

・おもりを選んだ時、その重さの合計がW以下であれば良い

・おもりの重さの合計は、おもりの選び方によっては2回以上出てくる可能性がある

→良い整数として一度数えた重さの合計は連想配列(辞書)に記録しておく

・重さの合計がW以下であり、初出現であれば良い整数としてカウントする

解答

コード・コメント

コード

 

C – Poem Online Judge

方針

①オリジナルな文字列とは初めて出現した各文字列のこと

→1度しか出現していない文字列ではない

②オリジナルな文字列の中で最も高い点数が、何番目に提出されたかを出力する

③オリジナルな文字列の中で最も高い点数が、2つ以上存在する場合は、早い方の提出順を出力する

解答

コード+コメント

コード

 

その他

参加メモ

A問題を解いた後、B問題で題意を読み解けずC問題へ

C問題もTLEを2回出してB問題へ戻るが、やはりB問題が解けずC問題へ

TLEのネックになっていたと思われる部分を修正してAC

B問題は1,2,3個のそれぞれを選択する3パターンに分けた探索を行うが間に合わず終了

他の解説記事一覧

【Python】AtCoder Beginner Contest 解答・解説記事一覧

コメント