【目標達成】paiza Sランクを取った感想

目標達成

ひとまずpaizaでSランクを取ることができました。

paizas039

S039の問題を取得して取ることができました。

以下では、Sランクを取った感想と、反省点をつらつらと述べていこうと思います。

Sランクを取ってみて

巷ではpaizaのSランクを簡単と言う人が見受けられますが、私個人としては難しかったです。

何が難しかったのか。

改めて振り返ると以下の様なことが難しいと感じました。

  1. 1回しか答えられないシステム。
  2. 時間が足りない。
  3. 解法が思い浮かばないとアウト。

などなど。

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月中には転職を成功させたいと思います。