Atcoderでもっと多くの問題を解きたい!と言うことで学習していきます。
期間は6ヶ月とし、水色コーダーを目指します。
筆者の学習歴
学習歴はこんな感じです。
まだまだ入門と言う感じですね。
・利用言語はPython3
・Pythonの利用は業務で少し
・学習は「みんなのPython」を読んだくらい
・ABCコンテストには数回参加した(解けるのは1〜2問)
競プロではC++を使う方が多いかと思いますが、筆者はPythonのシンプルさに感動したためPythonで取り組みます。
今日が2022年5月23日(土)で、9月20日までの半年の期間で学習を進めます。
毎週のAtCoder Beginner Contest(ABC)をペースメーカーにしていきます。
今週学習したこと
直近のABCのC問題を解いていました。
次の目標
茶色に昇級する。
茶色昇級のため、目標を整理しました。
・A・B問題を高速で解く(理想10分以内)
・C・D問題をどちらか解く
私は今、A・B問題を解くのに20分前後かかっています。
これを10分以内で解くだけでも、順位は1,000以上アップが期待できます。
今週のABC
ABCに参加してきました。
元のアカウントにログインできたので、前のアカウントで再開しました。
結果はこんな感じでした。
AC:2問
パフォーマンス:381
レーティング:136→155
段級位:10級
結果
ASCII Code
英小文字のASCIIコード(97~122)が与えられる。
ASCIIコードがNであるような英小文字を出力せよ。
ASCIIコードと、文字との変換に使う書き方を調べるだけです。
ここは3分9秒でACしました。
N=int(input())
chr_s=chr(N)
print(chr_s)
Takahashi’s Failure
N個の食品があり、列Aはそれぞれの食品の美味しさ、列Bは嫌いな食品の番号である。
美味しさが最大の食品を食べる時、嫌いな食品を食べる可能性があるかどうかを出力せよ。
まずA列から最大値をmaxで取り出します。
列Bのループを回し、最大値があるかどうかで判断しました。
ここは12分10秒で回答。
ここまでは15分ほどとまずまずのペースです。
N,K=map(int,input().split())
A = list(map(int,input().split()))
B = list(map(int,input().split()))
flag=0
saidai=max(A)
for i in B:
if A[i-1]>=saidai:
flag=1
if flag==0:
print("No")
else:
print("Yes")
Slot Strategy
残り時間はこの問題に取り組みました。
考え方は良いと思い試行錯誤しましたが、16/32がWAとなりACできず。
感想
ABC252では、C問題よりD問題の方が取り組みやすかったです。
難しいと分かったら、次の問題に移る柔軟性が必要だと感じました。
来週学習すること
C、D問題以降も勝負できる様にするため、まずはbit演算と探索を練習します。
ABCの過去の問題も解き進めます。