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

Atcoderでもっと多くの問題を解きたい!と言うことで学習していきます。

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

筆者の学習歴

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

まだまだ入門と言う感じですね。

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

・利用言語はPython3

・Pythonの利用は業務で少し

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

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

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

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

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

今週学習したこと

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

ABC ProblemsでA、B問題を中心に20問ほど解きました。

学習内容

ABC ProblemsでA、B問題を20問

次の目標

茶色に昇級する。

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

学習内容

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

・C・D問題をどちらか解く

私は今、A・B問題を解くのに20分前後かかっています。

これを10分以内で解くだけでも、順位は1,000以上アップが期待できます。

今週のABC

ABCに参加してきました。

abc253

結果はこんな感じでした。

abc253

ABC結果

AC:2問

パフォーマンス:358

レーティング:155→173

段級位:10級

結果

A問題

Median

a,b,cが与えられる。bが中央値かを判定せよ。

3つの整数なので、条件を全部書けば良いです。

ここは3分53秒でACしました。

a,b,c=list(map(int,input().split()))
if a<=b & b<=c:
print("Yes")
elif a>=b & b>=c:
print("Yes")
else:
print("No")
B問題

Distance Between Tokens

たてH、横Wのマス目がある。

マスの中に2つコマがあり、一方のマスをマス目からでないように移動させる時、何回動かす必要があるか

マス目の中でコマがある座標を取得して、たてと横の座標の差を合計すれば答えです。

ここは10分で回答。

ここまでは14分ほどとまずまずのペースです。

import math
H, W=list(map(int,input().split()))
S = [input() for i in range(H)]
cnth=[]
cntw=[]
ans=0

for i in range(H):
  for j in range(W):
    if S[i][j]=="o":
      cnth.append(i)
      cntw.append(j)
      #dist.append
ans=abs(cnth[1]-cnth[0])+abs(cntw[1]-cntw[0])
print(ans)
D問題

Fizz Buzz Sum Hard

1以上N以下の数で、Aの倍数でもBの倍数でもないものの総和を求めよ。

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

全探索するとTLEするので、DPで考えましたが解けず。

実際は数学的回答で解ける問題でした。

感想

ABC253では、C問題よりD問題の方が取り組みやすかったです。

取り組んだ問題は良かったのですが、発想が足りませんでした。

来週学習すること

C、D問題以降も勝負できる様にするため、まずはbit演算と探索を練習します。

ABCの過去の問題も解き進めます。

・AtCoder Problems

コメントを残す

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