Atcoderでもっと多くの問題を解きたい!と言うことで学習していきます。
期間は6ヶ月とし、水色コーダーを目指します。
筆者の学習歴
学習歴はこんな感じです。
まだまだ入門と言う感じですね。
・利用言語はPython3
・Pythonの利用は業務で少し
・学習は「みんなのPython」を読んだくらい
・ABCコンテストには数回参加した(解けるのは1〜2問)
競プロではC++を使う方が多いかと思いますが、筆者はPythonのシンプルさに感動したためPythonで取り組みます。
今日が2022年5月14日(土)で、9月20日までの半年の期間で学習を進めます。
毎週のAtCoder Beginner Contest(ABC)をペースメーカーにしていきます。
今週学習したこと
前回は4/30(土)にABCに参加しました。
5/8(日)の参加を忘れてしまったため、5/14(土)のABCに参加しています。
今週は他の資格学習をしていたことがあり、特に勉強はできなかったです。
次の目標
茶色に昇級する。
茶色昇級のため、目標を整理しました。
・A・B問題を高速で解く(理想10分以内)
・C・D問題をどちらか解く
私は今、A・B問題を解くのに20分前後かかっています。
これを10分以内で解くだけでも、順位は1,000以上アップが期待できます。
今週のABC
ABCに参加してきました。
元のアカウントにログインできたので、前のアカウントで再開しました。
結果はこんな感じでした。
AC:1問
パフォーマンス:206
レーティング:128→136
段級位:11級
結果
Six Chracters
長さが6の約数の文字列Sが与えられる。Sを繰り返して作られる長さ6の文字列を出力せよ。
ここは3分30秒でACしました。
s=input()
ans=""
cnt=int(6/len(s))
for i in range(cnt):
ans+=s
print(ans)
At Most3
N個の重りがあり、以下の数nを良い整数と呼ぶ。
3個以下の重りを自由に選び、重さの合計がnになる。
W以下の数で、良い数はいくつあるか。
取り組みやすいように見えましたが、ACできませんでした。
制約的に、重りの選び方は3重ループで間に合うことがわかりましたが、「3個以下の重りの選び方」がわからず。
1個選ぶループ、2個選ぶループ、3個選ぶループ、とループを3回書けばよかったです。
感想
ABC251では、B問題までは解かなくてはいけなかったです。
来週学習すること
C、D問題以降も勝負できる様にするため、まずはbit演算を練習します。
ABCの過去の問題も少しずつ解き進めたいですね。