【目標達成】paiza Sランクを取った感想
目標達成
ひとまずpaizaでSランクを取ることができました。
S039の問題を取得して取ることができました。
以下では、Sランクを取った感想と、反省点をつらつらと述べていこうと思います。
Sランクを取ってみて
巷ではpaizaのSランクを簡単と言う人が見受けられますが、私個人としては難しかったです。
何が難しかったのか。
改めて振り返ると以下の様なことが難しいと感じました。
- 1回しか答えられないシステム。
- 時間が足りない。
- 解法が思い浮かばないとアウト。
などなど。
paizaのスキルチェックはシステム上「1回」しか答えられません。 そのため、境界値の例外処理など、抜けていた場合、問答無用で不正解となります。
Sランク問題を90点で解けばAランクの資格をもらうことができますが、Sランクはその上の問題がないため、確実に解く必要があります。
私はTDDを好むため、とにかくテストケースを追加して、コケて修正をする。 というのを繰り返す開発を主に行ってきました。
「じゃあテストケース書いてやればいいじゃん」
そう思うのですが、すると次の問題「時間が足りない」に迫られます。
私が初めてSランクを受けた問題は完答で正解しました。
ところが、その評価は「Aランク相当」。
なぜ? その理由を見たところ、解答時間が2時間以上あったため、それが評価のマイナスポイントになりました。
そして最後のポイント「解法が浮かばない」。 これもなかなか難しい問題です。
Aランク相当まではとにかく基本構文を使えれば力技で解けます。 全探索、貪欲法、深さ探索の問題も、一からアルゴリズムを組める程度のボリュームなので、対策を練る必要はないと思います。
ところがどっこい。 Sランクは一筋縄ではいきませんでした。
確かに問題によってはAランクのように力技で行ける問題がありますが、基本は「知らないと解けない」問題が大半だと思います。 まだ5問ぐらいしかやってませんが、うち2つは全く分からず簡易的な貪欲法で解きました(84点という中途半端な成績)。
こう考えると、やっぱりSランクって難しいな、って思います。
反省点
正直に申し上げます。 このSランク、妥協のSランクです。
私は主にJava開発を行っているのですが、Pythonで解きました。
なぜPythonで解いたのか。 その理由は、やはり「時間」です。
Javaで最初は解いていたのですが、クラスを作成する、とか簡単なスワップ処理もメソッド分割する必要がある。 などなど、やらないといけないことがたくさんあります。
ところが、Pythonは言語仕様でスワップ処理をかけたり、配列の初期化が簡単だったりと。 問題を早く解くにはうってつけの言語でした。
そういった理由から、私の反省点は「Java」で解かなかったことです。
今後
今後の流れとしてはとにかくpaizaを利用して転職をしたいと思います。 6月中には転職を成功させたいと思います。