【AtCoder21週目】競プロ初心者が6ヶ月で水色コーダー目指す学習記

期間は6ヶ月(25週間)とし、水色コーダーを目指します。

C・D問題攻略のためアルゴリズム別学習を進めます。

今週学習したこと

今週からABC Problemsで過去問に取り組み始めました。

B問題を解くのと、アルゴリズムの分野別学習を進めます。

学習内容

ABC ProblemsでB問題を30問

さらに@e869120さんの記事で分野別学習を始めました。

レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】

基本アルゴリズム12個を学ぶと良いようです。

各記事ボリュームがありますが、まずは12個基本を押さえます。

全探索 二分探索 深さ優先探索 (DFS) 幅優先探索 (BFS)
動的計画法 (DP) ダイクストラ法 ワーシャルフロイド法 クラスカル法
高速な素数判定法 べき乗を高速に計算する手法 逆元を計算する手法 累積和

今週の学習項目は特になしです。

筆者の学習歴

学習歴はこんな感じです。

筆者の競技プログラミング歴

・利用言語はPython3

・Pythonの利用は業務で少し

・学習は「みんなのPython」を読んだくらい

・ABCコンテストには数回参加した(解けるのは1〜2問)

競プロではC++を使う方が多いかと思いますが、筆者はPythonのシンプルさに感動したためPythonで取り組みます。

今日が2022年8月13日(土)で、9月20日までの半年の期間で学習を進めます。

毎週のAtCoder Beginner Contest(ABC)をペースメーカーにしていきます。

今週のABC

ABCに参加してきました。

abc264

2問AC、灰色パフォーマンスでした。

C問題以降が解けなかったのが痛かったです。

abc-264

ABC結果

AC:2問

パフォーマンス:393

レーティング:295→304(+9)

段級位:9級

結果

A問題

“atcoder”.substr()

“atcoder”の文字列から指定された数字の番号の文字列を出力せよ

2分30秒でACしました。

a,b=map(int,input().split())
s='atcoder'
print(s[a-1:b])
B問題

Nice Grid

abc-264-B

白色と黒色のタイルが交互に並べられています。

指定された位置が、中央から数えて何周目にあるかわかれば、あとは偶奇で判断できます。

R,C=map(int,input().split())
r=abs(8-R)
c=abs(8-C)
t=max(r,c)

if t%2==1:
  print('black')
else:
  print('white')
D問題

“redocta”.swap(i,i+1)

“atcoder”の順番を入れ替えた文字列が与えられる。

隣同士を入れ替える操作を行うとき、文字列を”atcoder”にするために行う最短の操作数を出力せよ。

残り時間はこの問題に取り組みました。

実装方法がわからず時間切れでした。

次の目標

今回のコンテストは茶色に近い灰色パフォーマンス(393)でした。

B問題をまずまずの速度でACできたのは収穫です。

目標:茶色パフォーマンスを継続して出せるようにする

茶色昇級のため、目標を整理しました。

学習内容

・A・B問題を高速で解く(理想5〜10分以内)

・C・D問題をどちらかあるいは両方解く

今回のC問題は「Bit演算」、D問題は「幅優先探索」で解ける問題でした。

最近のABCは幅優先探索が多いような気がするので、今週は幅優先探索の練習をします。

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です