競技プログラミングの鉄則【1-5問】
palm
Palm Blog
AtCoderとは
AtCoderは「アルゴリズムに関する問題をプログラミングで解く」ことを競技としたコンテストを開催するサイトのことです。
レーディングとは
コンテストの成績に応じて「色」があたえられます。色によってランクがあったりします。あたりまえですが私はまだ灰色の下のくろです。
問題のレベル
このように上から点数が振り分けられています。
私はコンテストに参加したことはないのでこのへんはちゃんとよくわかっていません。
アルゴリズム的思考力が身につく! プログラミングコンテストAtCoder入門
「アルゴリズム的思考力が身につく! プログラミングコンテストAtCoder入門」大槻兼資 [PC・理工科学書] – KADOKAWA
競プロの過去問やってみた
今回やってみた過去問はこちらです
A – The bottom of the ninth (atcoder.jp)
野球をしていてAの合計点をBの合計点から引いてBが勝つためのコードです。簡単に見えますが、よく考えたら勝つためには、引き分けより1
点高くする必要があって+1をするのを忘れがちでした。
A = list(map(int, input().split()))
B = list(map(int, input().split()))
print(sum(A)-sum(B)+1)
B – Spot the Difference (atcoder.jp)
AとBの文字を一つずつ確認します。文字が違うところを見つけたら、そこを出力して終了するコードです。難しかったことは、Aをlist化するためにforループで回してあげるところですかね??この問題はとても難しかったです!!
N = int(input())
A = []
B = []
for i in range(N):
A.append(input())
for i in range(N):
B.append(input())
for i in range(N):
for j in range(N):
if A[i][j]!=B[i][j]:
print(i+1,j+1)
まとめ
AtCoderをはじめてみてこれは面白いと思いました。ひまな時や思考力を鍛えたいときにちょうどいいです。私の目標は今月までにランクCレベルの問題を解けるようになりたいです。アルゴリズムをはやく使ってみたいです!