Atcoderでもっと多くの問題を解きたい!と言うことで学習していきます。
期間は6ヶ月とし、水色コーダーを目指します。
Atcoder学習、最初の週はこちら
【AtCoder1週目】競プロ初心者が6ヶ月で水色コーダー目指す学習記
筆者の学習歴
学習歴はこんな感じです。
まだまだ入門と言う感じですね。
・利用言語はPython3
・Pythonの利用は業務で少し
・学習は「みんなのPython」を読んだくらい
・ABCコンテストには数回参加した(解けるのは1〜2問)
競プロではC++を使う方が多いかと思いますが、筆者はPythonのシンプルさに感動したためPythonで取り組みます。
今日が2022年4月10日(日)で、9月20日までの半年の期間で学習を進めます。
毎週のAtCoder Beginner Contest(ABC)をペースメーカーにしていきます。
今週学習したこと
今週4月2日(土)〜4月10日(日)は、DPの学習をしていました。
競プロの時間があまり取れず、DPの練習だけしました。
こちらEducational DP ContestのページでA-E問題を解きました。
今週のABC
ABCに参加してきました。
結果はこんな感じでした。
AC:2問
パフォーマンス:292
レーティング:111→127
段級位:11級
結果
Move Right
特に問題はないですね。
コードは冗長ですが、場合分けして解きました。
a = input()
print('0'+a[0]+a[1]+a[2])
Unique Nickname
他の人と被らない性、名を選ぶアルゴリズムをDPで実装しようとしましたが、dpの取り方がわからず断念。
N<100なので、普通にループを組んで処理すれば良かったようです。
1 2 1 3 1 2 1
dpで更新すればTREすることもなく処理できます。
def ans(n):
a=['']*18
#print(a)
a[1]='1'
for i in range(2, n+1):
a[i] = a[i-1] +' '+ str(i) + ' ' + a[i-1]
print(a[n])
N=int(input())
ans(N)
感想
2問目までは安定して解ける様になってきました。
3問目ACをしないとスコアが伸びませんので、C、D問題にでやすいDP問題を狙い目に練習していきます。
来週学習すること
D問題以降も勝負できる様にするため、グラフの学習をします。
また、DPの練習も進めます。
ABCの過去の問題も少しずつ解き進めたいですね。
・Educationl DP Contest / DPまとめコンテスト
・DFS (深さ優先探索) 超入門! 〜 グラフ・アルゴリズムの世界への入口 〜【前編】