paizaプログラミングスキルSランク問題が全く分からない…これあかんやつだわ

paizaプログラミングスキルSランク問題が全く分からない…これあかんやつだわ
この数日間、クソPHPerを自認する私がSランクの問題を2つほど挑戦してみたが、撃沈した。
まったくお手上げな感じ。
1つは、おそらく動的計画法とかいう方法論でしかとけない問題であることは明白だった。
力技でやるとメモリーリークを引き起こしてにっちもさっちもいかなくなった。
アルゴリズムというより数学的問題な気がするやつで、頭の中で半日シミュレートしたが、
計算量が収束する方法が思いつかずに断念した。いや、パターンを代数的に扱うことができれば、
指数関数的に増大するデータを表現可能なのだが、それをコード上でどうやって実現すればいいのか?
書こうとするとそれなりにコード量がいるプログラムになる。それはそれでいいのだけれど、
時間短縮率が力技でやった時よりは低くなりそうだが、制限時間以内に終わるアルゴリズムかも謎。

つまり、それが正解かどうかもわからないのに時間を費やす意味があるのか?、などと思ってしまった。
(自分のロジックを疑ってしまって手が止まったら、その時点で試合終了だ)
(おそらく私が頭の中で思い描いたアルゴリズムは計算量を少なくする策にいまいち欠ける)
そのため「無理っぽい」という判断をした。自分で負けを認めないといけなかった。
次にテストを受けるときは直感でも計算できそうなものにしようとして、
今度は経路系の問題を選んだ…経路のアルゴリズムについては詳しく知らないが、
他のアルゴリズムより簡単な気がした…人間的な手順の積み重ねの連続な気がしたからだ。
その他にもヒントがないか調べるのは自由だと思ってググってみたが、なんの収穫もなし。
あったのはpaizaSランクの問題をクソ簡単だったわwなどと言っている大学生みたいな人がいて、
あ、オレはプログラマとして才能がないんだなーということを再自覚した。
まあ、そんな自覚は、今までだって何度もしてきたから別によいのであるが、
所見でもう少し解ける問題があってもいいのではないか?と思ったし、
これらが難なく解ければ仕事も広がるだろうと思うので、競技用アルゴリズムの本を夜な夜な開いている。
とりあえずよくある問題に、何と何を使えばいいかぐらいわからないと問題の解きようがない。
東大の問題も基礎学力の応用でしかないようにアルゴリズムの問題も同様だから、
頭に入っていればそれをうまく組み合わせて行けそうかどうかぐらいのあたりはつけられるはず。
加えてcかc++かpythonのNumPy辺りが使えないとスピードが出ないなと思った。
pythonを使っていてといってもWEBアプリ作成とかちょっとしたコードなのだが、
今まで意識していなかったが、NumPyのことがよくわかっていなかった。
NumPyのAPI内部がC言語やFortranで実装されているらしい。
Pythonで科学技術計算する場合は、NumPy型の配列を扱えることは必須条件で避けては通れない。
ちなみにpyという文字を見るとピーと私は読んでしまうのでNumPyをナン(ム)ピーだと思っていたが、
ナムパイと読むのが正しいらしい。恥ずかしい。いろいろと、恥ずかしい。

徒然草2.0
スポンサーリンク
シェアする
gomiryoをフォローする
ごみぶろぐ

コメント

タイトルとURLをコピーしました