2017-09-11〜09-18 やったことと振り返り

昨日の月曜日含めて8日分、休みだし更新でいいかぁと。

ソシャゲ

また時間が溶けた。今回は単純に解けたのではないので、以下理由。

  • 敵が強い
  • 欲しいものがDropするステージを選べないタイプ
  • 欲しいものを集めきった人が開始早々抜ける

仕事分析

  • フルタイムで関われてないのでつらい
  • 分析計画はちょっとできた
    • 深く分析する際の対象期間やセグメントを限定するのが苦手
    • したとしても、目的をもたない限定にしてしまう
      • それは何のためにするのですか、という質問で気づく or 集計後に比較できるもの(仮説含めて)ないため
  • 相手に価値がある分析というのを意識できていない
    • 資料としてのoutputを意識できていないからか、集計だけでなく分析までしているときでも集計っぽくなる
    • 傾向を見るべきなのに、集計で留まっているときがあった…

ABC

074

  • Aは問題なし
  • Bは問題文長かったのでちょっと時間使ったけど、内容は問題なし
  • Cを難しく考えすぎた
  • Dは途中まで問題ないが、最後までできず

Cは砂糖が水に溶け切る範囲での濃度を最大にする回答をする問題。計算量を考えて全探索にするべきだった。 ACしたあとに別の解法を試したとき、0%砂糖水は許容されていることから思い込みで水の最低限使う量を無視して水0gにしてハマってた。制約はきちんと見よう。

Dは地図の経路が実際最短経路になっているか問題。この前覚えたワーシャルフロイド法が役に立った。 距離が他の経路と同じである不要な経由経路を削ぎ落とすために、判定用の2次元配列を作らず何度も不要判定していたので間違っていた。対称行列なのは分かっていたのでもったいない。printでなくprint error, それでもなくdebugger使うように意識+使うまでの時間を短くしたい。

golang

D問題の時、CPython3でTLEしていたのでこの際だしと手を出した。実際はPyPy3で問題なさそうだった。JITコンパイルすごい。 golangをひっさしぶりにやった感想としては、

  • 型推論のおかげで意識的に型付けしなくて良いのは良い、という前にも感じたこと
  • pythonでのloop+四則演算benchmarkより2桁多い数を処理できてすごいと感じた
  • 便利と言われているけど、pythonほどbatteries includedではないと初めて実感(pythonが豊富すぎる)
  • 命名においてsnake_caseは標準ではないらしく、python脳になっていると実感(vscode便利)
  • indentでなくCurly bracesによる書き方が面倒くさく、Python脳にry
  • 正直、競プロとしての第一言語にはならないなぁと思った

structもinterfaceも使っていないしtree系でようやく使うぐらいかなと。goroutineというか並列・並行処理を競プロにおいて使えるかわからないので、本来のgolangとして身につく日は来なさそう。

DP

下記を見た+TwitterPython実装というのが流れてきたので自分でもやってみることにした。

qiita.com

gitへcommitしてなくていつやったか忘れている。とりあえずはナップサック問題までやったのであと10個。

アルゴリズムとデータ構造

久しぶりにアルゴリズムを学ぼうとyukicoder wikiを見ていた。

アルゴリズムを学ぼう

アルゴリズムを学ぼう

実践ばかりしていたのが、ワーシャルフロイド法を覚えてからABCのDを解くために知識を付けている延長なのかもしれない。 前者は久しぶりに見ても表紙のゆるさと違う勉強になる本。後者はBrowserのTabに常に残してある。 見たことをpythonの関数やClassの雛形として定義したので、いつか埋めよう。

まとめ

  • 競プロは順調に習慣づいているのと成長を実感
  • 分析慣れたい。メンタルに来る…
    • Kaggleとは違うだろうけど、データ探索としては役に立つよね
    • 画像や自然言語処理とか置いておいて、Marketing系のを探そう