YKpages

ロボット分野で勉強したことのまとめ

paizaでフリーザの戦闘力を体験しよう! ~エンジニア戦闘力を53万まで上げる方法~

はじめに

最近、paizaのスキルチェックに『エンジニア戦闘力』というものが表示されるようになりました。(まだベータテスト中らしいです)

f:id:kato_robotics:20191022121003p:plain
paizaのエンジニア戦闘力

このエンジニア戦闘力については、公式のpaiza開発日誌ブログに詳しい解説があります。

paiza.hatenablog.com

『戦闘力』と聞いてまず気になることと言えば、「どうすれば戦闘力を53万まで上げることができるのか」ということだと思います。 もちろん、戦闘力53万とは漫画『ドラゴンボール』に登場する『フリーザ』の第一形態における戦闘力のことですね。 あの憧れのフリーザと同じ戦闘力になりたい、という夢は誰しもが持っていると思います。

しかし、これまでフリーザの戦闘力を体験しようと思ってもその手段がありませんでした。 なぜなら「戦闘力を計測する」という機能を持った装置(スカウターなど)やシステムがこの世界に存在しなかったからです (もしかしたら私が知らないだけで存在しているかもしれません)。 そのためフリーザになりたいという夢が叶うことはありませんでした。

そんなとき、paizaに『エンジニア戦闘力』というドラゴンボールでいうところの『スカウター』が登場しました。 おそらくpaiza開発者の方々の中にも私と同じくフリーザになりたいという夢を持った方がいたのでしょう。

ついに、フリーザの戦闘力を手にする時が来ました。

この記事ではpaizaを利用して戦闘力を53万まで上げる方法をまとめます。

みんなでフリーザの戦闘力を体験しましょう!

目次

エンジニア戦闘力とは何か

paizaのスキルチェックの問題は「S, A, B, C, D」という5つのランクに分かれています。 しかし、さすがに5段階のランクだけではスキルの評価を行うためには不十分かもしれないという話になり、 そこで誕生したのが『エンジニア戦闘力』らしいです。

エンジニア戦闘力とはその人のスキルを数値によって表したものです。 (だいたい1~百万くらいまで)

このエンジニア戦闘力が高い方がpaizaの世界においては強いということになります。

詳しいことはpaiza開発日誌を読んでみてください(再掲)。分かりやすく説明されています。

paiza.hatenablog.com

エンジニア戦闘力の仕組み

paizaのエンジニア戦闘力はスキルチェックの問題を解くことによって上げることができます。 逆に問題を解くのに失敗すると戦闘力は下がることになります。

f:id:kato_robotics:20191022121003p:plain
paizaのエンジニア戦闘力

この画像は私のエンジニア戦闘力のグラフです。 グラフが上がったり、下がったりしているのは、 私が問題を解くのに成功したり、失敗したりしているからです。

問題を解いてエンジニア戦闘力を上げるには以下の条件を満たす必要があります。 逆にこの条件を満たさないと「失敗」という扱いになって戦闘力が下がります。

  • 各問題に設定されている「想定回答時間」以内に回答を提出する
  • 提出した回答がすべてのテストケースをクリアする(スコア100点を取る)

そしてこのエンジニア戦闘力は「より難しい問題を解くと、より大きく上がる」という仕組みになっています。 詳しくは以下に続きます。

問題の難易度について

スキルチェックの問題にはそれぞれ「難易度」というものが存在します。 これは問題に設けられたレーティングであり、難易度が高いほど難しいということを表しています。

下の画像は問題のランクと難易度のイメージ図です (私が適当に描いたものなので正確ではありません)。

f:id:kato_robotics:20191026002811p:plain
問題のランクと難易度のイメージ図

この図から分かる通りランクが高い問題ほど、 難易度が高くなっていきます。 しかし、Sランクよりも難易度が高いBランクの問題も存在したりします。

ちなみに、問題の難易度は私が調べたところ、だいたい以下のようになっていました。

難易度
Dランク 700 ~ 1400
Cランク 1300 ~ 2000
Bランク 1500 ~ 2300
Aランク 1800 ~ 2400
Sランク 2200 ~ 2500

効率の良い戦闘力の上げ方

ではさっそくどうすればエンジニア戦闘力を53万まで上げて、 フリーザの力を体験できるのかという話をしていきます。

まずpaiza開発日誌のエンジニア戦闘力についての解説を読むと、 より難易度の高い問題を解くと、エンジニア戦闘力も大きく上がると書いてあります。

つまり難しい問題を解けば解くほどエンジニア戦闘力が上がっていくということになります。 しかし、当たり前のことですが問題が難しければ難しいほど失敗する可能性が高くなっていきます。 また難しい問題ほど解くまでに時間がかかってしまいます。

そう考えると自分にとって難しいと感じる問題を解くことは、 エンジニア戦闘力を上げるためには必ずしも必要ではないと思われます。 そこで私が考える最も効率の良いエンジニア戦闘力の上げ方は以下のものです。

自分が確実に解ける問題の中で最も難易度が高い問題を解いていく

勉強の目的でスキルチェックの問題を解くなら 難しそうな問題にもチャレンジしていくべきだとは思いますが、 エンジニア戦闘力を53万まで上げることを目的としてスキルチェックの問題を解くならば 確実に解ける問題を解いてくことが最も効率が良い方法だと思います。

なぜならエンジニア戦闘力を上げるためには、 スキルチェックの問題を解き、かつ、失敗しないように解く必要があるからです。 この「失敗しないように解く」ということが重要で、 一問失敗するだけでガクッと戦闘力が落ちることもあります (失敗した問題の難易度によって落ち方は変わります)。 そのため確実に解ける問題を解いていくことが大切だと思います。

おすすめの問題ランクと難易度

私がおすすめする問題のランクと難易度をまとめておきます。

  • Cランクの難易度1700~
  • Bランクの難易度1700~

この辺りの問題は以下の条件を満たします。

  • 実装が軽く比較的すぐに解ける(10分~20分くらい)
  • 特殊なテストケースなどもなく失敗しにくい
  • 1問でエンジニア戦闘力が1万~数万上がる

つまり、簡単に解けて戦闘力もそこそこ上がる問題が良いと思います。 しかし、一つ前の章でも言った通り確実に解ける問題が最も効率の良い問題です。 私がおすすめした問題が難しければもう少し簡単な問題を解いてみたり、 逆に簡単すぎるならばもっと難易度の高い問題を解いてみると良いと思います。

私がおすすめした問題を解いていけば、 20~30問くらいでエンジニア戦闘力53万に到達すると思います。 また、エンジニア戦闘力が53万近くまで上がったら、 Dランクの問題を解くなどして微調整を行うことで、 53万びったりを狙うこともできるかもしれません。

初めてpaizaを利用する方におすすめの問題

この記事を読む方の中には、 「フリーザの戦闘力を体験したいからpaizaを始めたけど、 どの問題を解けばいいのか分からない」 という方もいらっしゃると思います。 そこで私が今までに解いた問題からいくつかおすすめの問題を選んでみます。 どの問題を解けばいいか迷っている方がいらっしゃいましたら参考にしてみてください。 特におすすめの問題は赤くしておきます。 (かっこの中の数字は各問題の難易度です。)

Dランク問題

  • D007 : N倍の文字列 (1244)
  • D014 : 小文字を大文字に (865)
  • D029 : サイコロの裏面 (857)

Cランク問題

  • C-16 : Leet文字列 (1324)
  • C034 : 先生の宿題 (1623)
  • C061 : 繰り上がりのない足し算 (1699)

Bランク問題

  • B031 : コインのウラとオモテ (1953)
  • B041 : 繰り返し模様 (2076)
  • B063 : 支払う枚数とお釣りの枚数 (2162)
  • B068 : 駒の到達範囲 (2023)

Aランク問題

  • A003 : 盤面ゲーム (1821)
  • A004 : あみだくじ (1869)

Sランク問題

スキルチェックの問題が難しいと感じたら

スキルチェックの問題が難しくて解けない、 という人もいるかと思います。 そんなときは競技プログラミングの勉強をしてみるというのも一つの手だと思います。 「競技プログラミング」「プログラミングコンテスト」などをキーワードに検索してみるといろんな情報が出てきます。

ちなみに、私がおすすめするのはAtCoderです。

atcoder.jp

AtCoderでは毎週プログラミングコンテストを開催しています。 また過去問も豊富で全ての問題に解説も備わっているため、 問題が解けなくても解説を読んで勉強することができます。

そう言われてもAtCoderで何をすればいいか分からない、 という人には以下の記事がおすすめです。 とても分かりやすく何をすればいいかがまとまっています。

qiita.com

書籍をお探しの方には以下がおすすめです。 プログラミングコンテストで必要とされるアルゴリズムを勉強することができます。

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

現在の私の戦闘力

「わたしの戦闘力は530670です」

f:id:kato_robotics:20191027142804p:plain
わたしの戦闘力は530670です

私もようやくフリーザの第一形態と同程度の戦闘力を手にすることができました。 思った以上に時間がかかってしまいましたが(なんやかんや50時間くらいかかった)、 フリーザと戦闘力で並ぶことができたという満足感と感動で胸が満たされています。

ちなみに、エンジニア戦闘力は百万を超えることも可能らしいので、 フリーザの第二形態における戦闘力も体験できる仕様になっているということです。 よく考えられていますね。

おわりに

今回はpaizaを利用してフリーザの戦闘力を体験する方法についてまとめました。 エンジニア戦闘力53万になって体から力がみなぎっています。 このネタ記事を書くために50時間くらい費やしましたが、 特に後悔もなく、清々しい気持ちになっています。 合計で百問以上問題を解いたので、 paizaにはかなり満足しました。 paizaには面白い問題も多く、就活もできるということでとても良いサービスだと思います。 みなさんもぜひ、paizaを活用して、 就活したり、転職したり、フリーザになったりしてみてください!