【Python】paizaのレベルアップ問題集をやってみた!
研究に必要なので、Pythonのお勉強を始めています。
もともと持っているC言語の知識をベースに、Python独自の記法などを叩き込み終わったので、実際にいろんなコードを書いてみようと思って paizaのレベルアップ問題集のA問題~D問題に挑戦してみました!
S問題は実装が面倒そうだったので今回はパスしました...もう少し腕を上げたら挑戦したいです。
勉強のログとして、進め方や感想などを残しておこうと思います。
進め方
- 自分でアルゴリズム・文法を考えてコードを書いてみる
- テストケースを通し、コードを提出する
- コードが正しいことを確認する
- 同じ問題を解いた人のコードを確認し、アルゴリズムの違いなどを確認する
- ほかの人のコードを見て、知らない関数などがあれば調べて使えるようにする
1.,2.,3. はそのままで、できるだけ計算量なども意識しながら自分の力でコードを書き進めていきます。
Pythonの細かい書き方や出てきたエラーなどについては適宜ネットで調べました。
→if文・for文で : をつけ忘れてエラーが出てしまうことが多かったです...><
4.,5. は個人のブログでPythonで書いたコードを載せている方がいたので参考にさせていただいていました。
特にPython独自のもの(例えば リストのソートなど)で抜けていることが多かったので勉強になりました。
学べたこと
- if文、for文に : をつける癖がついた
- for文の内包表記が身についた
- リストのスライスが身についた
- 型宣言しないことに慣れた
C言語でのプログラミングに慣れているのではじめは細かい文法のミスが多かったですが、D問題が終わるときにはだいぶPythonに慣れてきました。
とくに、内包表記は身に付けるとコードが綺麗になるので早いうちにスラスラ書けるようになったので良かったと思います。
感想
C問題とD問題
C・D問題はとても簡単でした。
アルゴリズムとか考える必要もなく(...?)、問題を読んでノータイムで書き始められました。
ただ、ソートの問題はソートの関数があることを知らずに挿入ソートを実装しました...><コードめっちゃ長かったです。
Pythonの関数のすごさが身に染みました。
A問題・B問題
A・B問題はアルゴリズムを自分で考えながらコードを書きました。そんなに難しくなかったです。
::
Pythonの書き方に慣れるための練習問題としてちょうど良い難易度の問題集でした。
プログラミングは筋トレなので、毎日継続して何かしらの問題を解いていきたいと思います。