前半に学習した内容、後半に感想や今回の内容に至った背景を書いています。
目次
○○って何?
プログラム例
感想や背景
競プロって何?
競技プログラミングの略。算数や数学みたいに問題があってプログラムを書いて解き、その正解数や解くのにかかった時間などを競う。(Wikipedia)
競プロで検索したらAtCoderというサイトが最初にヒットすると思うが、めっちゃ問題数がある。
友人曰く、就活に使うにはタイパ悪いらしいけど、ランクが良いとそれだけで就活に使えたりするらしい。武器の一つになりそうだよね、知らんけど
Pythonって何?
蛇です。ロゴがかわいい。プログラミング言語の一種で、他の言語に比べるとシンプルに書けるなぁって印象がある。
ライブラリっていう便利な道具、ツールみたいなものがあってそれが充実してるんだって詳しい人が言ってた。
私は高専時代の研究で使ってた。
標準入力って何?
詳しく知りたい人はGoogleやChatGPTに聞いてね。
今のところは、解答プログラムの正誤判定のために与えられるデータを読み込む方法という認識。
使ったことない何も分からんが!と思いながら勉強していた。
今回この記事を書いているうちに、そういえば高専1年の実験のC++のプログラムでscanf関数を使っていた。Pythonでも研究の時にinput関数を使っていた。あれだったのかよ
基礎となる標準入力のプログラム
(これ分かってるだけでPaizaのD問題なら全部解ける)
line = input().rstrip().split(",")
print(line)
input()
でテータを入力。.
でそれぞれの関数を区切る。
strip()
という関数は文字列の両側の文字を削除する。()
内に削除するものを指定しないとき改行やスペースを削除する(仕様)。
~ rstrip()
は文字列の右側の文字、lstrip()
だと左側を削除する。~
--- 参考 TechAcademy FreeHeroBlog
以下は四則演算の演算子例
n = 3 #変数nに3を代入
a = line + n #足し算(和)
s = line - n #引き算(差)
m = line * n #掛け算(積)
d = line / n #割り算(商)
r = line % n #余り(剰余)
i = line // n #割り算して小数点以下を切り捨て
これらを様々に組み合わせてプログラムを書き計算することで、問題の解を求められるというわけだな!
競プロは数学も一度に勉強できてお得だね
なぜ競プロなのか
プログラミングを学ぶ方法はたくさんある中でなぜ競プロを選んだのか。
高専卒業までに習ったことをほとんど忘れてしまった気がしていた。プログラミングだけじゃなく、数学や英語もである。今や中学生以下の学力だという自信がある。
さて、ほとんど忘れてしまったプログラミングの学習を始めるにあたり、まず何をすればいいの?という壁があった。
取り掛かり易かったProgateも無料でできる範囲にはすぐ終わってしまい限界がある。それで学べる知識だけで何かを完成させられるほど、私は器用でないことに色々とやっている内に気付くこともできた。しかし作りたいなと色々発想することは溢れるほどできて、挑戦し調べては「どうしたらいいのか分からない進まない」で終わることが多かった。
調べた時の、そこに書いてあることがどうすれば理解できるようになるのだろうと考えた。まずは基礎力を付けるべきだと結論した。
ちょうどTLにツイートが流れてきて友人が就活していたのを知った。彼がずっと競プロをやっているのを思い出した。彼らの話してる内容が理解できたらもっと楽しいだろうにとか、足を引っ張らず一緒に大会へ出られたらなとか、学生時代にそんなことを思いながらも勉強するには余裕がなく、彼らに憧れながら諦めていたのを思い出した。
基礎力を付けるには簡単なプログラムからとにかく沢山書くこと、簡単なプログラムをたくさん書くのに競プロがちょうど良いのではないかという気がした。
昔、AtCoderの情報量に目が滑っていた記憶があったのでPaizaで始めてみることにした。学生時代やその後も、勉強しようと挑戦する度に標準入力ってなんだよと躓いてたのもあり、理解できたことは記録しようとこの記事を書いたわけである。
↓ 記事にしようと思った経緯はこちらに書いてます、よかったら読んでね
おきもち