期間は6ヶ月(25週間)とし、水色コーダーを目指します。
今日が2022年9月17日(土)で、9月20日までの半年の期間で学習を進めます。
6ヶ月と決めて、最後の週になりました。
Atcoder学習、最初の週はこちら
【AtCoder1週目】競プロ初心者が6ヶ月で水色コーダー目指す学習記
今週学習したこと
・分野別学習(全探索)
@e869120さんの記事の分野別学習記録
レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】
基本アルゴリズム12個を学ぶと良いようです。
各記事ボリュームがありますが、まずは12個基本を押さえます。
全探索 | 二分探索 | 深さ優先探索 (DFS) | 幅優先探索 (BFS) |
動的計画法 (DP) | ダイクストラ法 | ワーシャルフロイド法 | クラスカル法 |
高速な素数判定法 | べき乗を高速に計算する手法 | 逆元を計算する手法 | 累積和 |
今週はレッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】で全探索の学習を進めました。
- 全探索
- 工夫して数を減らす全探索
- ビット全探索
- 順列全探索
全探索については、10問ほど解いて使うモジュール(permutationなど)がわかったのでよしとします。
筆者の学習歴
学習歴はこんな感じです。
・利用言語はPython3
・Pythonの利用は業務で少し
・学習は「みんなのPython」を読んだくらい
・ABCコンテストには数回参加した(解けるのは1〜2問)
競プロではC++を使う方が多いかと思いますが、筆者はPythonのシンプルさに感動したためPythonで取り組みます。
毎週のAtCoder Beginner Contest(ABC)をペースメーカーにしていきます。
今週のコンテスト
ABC267
ABCに参加してきました。
2問AC、茶色パフォーマンスでした。
A、B問題しか解けませんでした。
AC:2問
パフォーマンス:524
レーティング:393→407(+14)
段級位:8級
茶色に復帰しました
結果
5 Integers
与えられる5つの数字に何種類の整数があるか出力せよ。
1分50秒(所要時間1分50秒)でACしました。
a=list(map(int,input().split()))
s=set(a)
print(len(s))
Prefix?
与えられる2つの文字列S、TについてSがTの接頭辞かどうか出力せよ
5分30秒(所要時間3分30秒)でACしました。
「startswith」を使えば速かったですが、思いつかなかなったので、Sの文字数分のループを組みました。
a=list(input())
b=list(input())
if len(a)>len(b):
print('No')
exit()
else:
flag=True
for i in range(len(a)):
if a[i]!=b[i]:
flag=False
break
print('Yes') if flag else print('No')
Unique Username
残り時間をはC問題を考えましたが、解答を提出できませんでした。
次の目標
目標:緑色パフォーマンスを出せるようにする
緑色昇級のため、目標を整理しました。
・A・B問題を高速で解く(理想5〜10分以内)
・C・D問題をどちらかあるいは両方解く
安定して茶色パフォーマンスを出し、できれば緑色パフォーマンスを目指します。
6ヶ月Atcoderをやってみた結果
- 結果:レーティング407(茶色)
- コンテスト出場回数:26回
6ヶ月Atcoderに取り組んだ結果は、407(茶色)でした。
まだABCのC問題、D問題につまる時が多いですね。
水色には全然届きませんでしたので、悔しさがあります。
3ヶ月の延長戦(2022年の年末まで)をやります。
今度こそ水色を目指します。