kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

ALDS1_5_C:Koch Curve

まずは自力で2次元ベクトルのクラスを作ってみる add, sub, scaleを演算子のオーバーロードで書いてみるテストただしこの問題が解ける最低限で

『Effective Python』

図書館で借りた『Effective Python』をざっと読みました今の自分には優しすぎもせず難しすぎもせずちょうどいいレベルで使えそうな情報がいっぱい ジェネレータの仕組みを使ったコルーチンでライフゲームっていうのが面白かったなオブジェクトに明示的に状態…

『竜ヶ岩洞物語』

昨日竜ヶ岩洞(りゅうがしどう)っていう鍾乳洞に行きましてこの暑さの中洞内は18度っていうこともあってか(なくてか)思った以上の賑わいでした車の行列もすごかったし(ウチは期せずして?ウラ技使ったような形でショートカットしてしまったんですけど) …

ALDS1_5_A: Exhaustive Search

章が「再帰・分割統治法」でセクションが「全探索」なんだけど n重ループみたいな単純な全探索じゃないといけないんだろうか 普通に書くと再帰になってしまいそう 再帰を使って全部試せば全探索? ・・・絵からして再帰でよさそうだな

ALDS1_4_D: Allocation

この問題はやや難しいチャレンジ問題です。 出た 思考★★☆、実装★★☆だから水たまりの問題より少し実装が難しいということか ぱっと見難しい最適化の問題かと思ったけど、ベルトコンベアーとトラックという 制限がついてるからなんとかなるのかな 荷物は出てき…

5.5 標準ライブラリによる検索

イテレータ イテレータってforとかで使ってるくらいで素では使ったことないな たぶん普通は素で使うことはないんだろう C++と見比べてみると C++ではend()と比較して、PythonではStopIteration例外を補足する これは前も見た サンプルのprint()をできるだけ…

ALDS1_4_C: Dictionary

「簡易的な」辞書って書いてあるけど、ただ配列にいれるだけじゃダメなんだろうね 100,000個で2secって書いてあるし 問題の並びや前にあった解説から空気を読んで配列に入れてハッシュ法でやることにする

ALDS1_4_B: Binary Search

今度は二分探索 ふたつに分けながら探すっていうことだけ覚えてる 1足したり引いたり終了の判定したりあたりの細かいことは書きながら考える 番兵は・・・いないよね?

ALDS1_4_A: Linear Search

ひとつめの数列の中に、ふたつめの数列に含まれる要素がいくつあるかを数える 線形探索って書いてあるからソートはなし? 要素数が10000個とか500個とかだから単純に二重ループでやればいいのかな お、こんなデータがある ループの順番に気をつけないと

ALDS1_3_D 続きの続きの続き

AC取ったし解説読む ざっくり方針は同じにみえる データ構造の章に出てるっていうのがヒントになったし

小さな習慣 1年

小さな習慣を始めてから1年がたちました 振り返ってみてどうかな消えちゃったものもありますがだいたいは続いてますね増えすぎて整理したものもあります 腕立て伏せ1回っていう目標なのに今やジム通い、みたいな劇的な広がりはありませんがぼちぼちやってい…

ALDS1_3_D 続きの続き

スタックが空にならなくても水たまりが終わることがある 浅くなってきてた水たまりが深くなったらいったん水たまりが終わったことに するけれども、右側の底がもっと高くなったら「飲み込まれる」ような動きがいる と思って作り込んだのがこれ

ALDS1_3_D 続き

さて しかしスタックだかキューだかリストだか知らんけど 使うとしたらスタックかなあ 何を積むか 計算量を増やさないようにするには、左から順番に1回見るだけで終わらないといけなさそう

ALDS1_3_D

※この問題はやや難しいチャレンジ問題です。難しいと感じたら今は飛ばして、実力をつけてから挑戦してみましょう。 どこが難しいんだろう? 水面の高さを覚えておいて、あと面積を足し算していくだけじゃない? 今水たまりの中か外か覚えておいて場合分けは…

書き直し

標準のデータ構造でALDS1_3_A、ALDS1_3_B、ALDS1_3_Cを書き直しました すっきり

標準ライブラリ 続き2

リスト STLでlistっていったら双方向リストなんだ まあ配列をリストと呼ぶよりは納得できる dequeがそのまんまで足りてそう

標準ライブラリ 続き

ベクタ ベクタは単にpythonの配列だったことが判明しましたのでそのまま使います クラス作る必要はまったくないけど練習で おかげで[]がオーバーロード?できるようになってることを知るなど

標準ライブラリ

ここでちょっと問題はひとやすみ 標準ライブラリでスタック、キュー、ベクタ、リストを使う方法が解説されてます Pythonではどうなるのかな スタック C++のSTLにはsize、top、push、pop、emptyといった関数が 含まれている模様 サンプルを見ると、popは削除…

Pythonのグローバル変数は遅いらしい

最後の決め手はメインルーチンを_main関数にしたってとこなんだけど そんなんで速くなるの? ALDS1_3_C: Doubly Linked List - kb84tkhrのブログ 詳しい人に聞いてみたところ、ローカル変数の方が速いよ、とのこと たしかにmainに入れる前はグローバル変数だ…

『失敗図鑑』

こんなムスメに「失敗しても大丈夫」と思わせるにはどうしたらいいか、と考える日々 で、育て方だったのか遺伝なのか、ウチの娘もそっくり同じ 勉強にしろ遊びにしろ、ちょっと難しいかも、と思うと手を付けようとしません あーここは自分に似たな、難しいこ…

ALDS1_3_C 続き

解説は明日読もう 読んで早々、 また、リストの先頭を指す特別なノードを設置することによって実装を 簡略化することができます。 このノードは「番兵」と呼ばれるもので あっ 言われてみると!

ALDS1_3_C: Doubly Linked List

リストの実装となるとポインタっぽいからC++で書いたほうがいいのかなーと 思ってましたがやってみたらPythonでごく自然に書けました ただの先入観でした しかし意外と例外を細かく考える必要があるなあ この問題だとまだ操作が限られてるけどフルに実装する…

『まんがでわかるニーチェ』

まんがでわかるニーチェ (まんがでわかるシリーズ) 作者: 白取春彦,nev 出版社/メーカー: 宝島社 発売日: 2016/07/15 メディア: 単行本 この商品を含むブログを見る 宝島社のまんがでわかるシリーズには大変お世話になっておりますこれまでに7つの習慣、D・…

ALDS1_3_B: Queue

キューはどんなふうに実装するのかな 配列をリングにするのか 線形リストを使うか たぶん配列

ALDS1_3_A: Stack

appendとpopでやるのは反則としておこう どこまでならゆるされるだろうか、と考えて配列とスタックポインタで書いてみた Pythonで「配列」って言うのは変かな でも気持ちは配列

イディオム

昨日ほかの人の回答を見たりしてよく使うパターンをいくつも発見したので 軽くここでまとめ 入力 1行をひとつの文字列として読み取る >>> input() aaa bbb ccc 'aaa bbb ccc'

ALDS1_2_D: Shell Sort

ソート自体は擬似コードが書いてあるので移すだけ 挿入ソートだと遠く離れた要素を入れ替えたくてもひとつずつずらしていくので 入れ替えの数が増えてしまいますがシェルソートでは間隔を空けて入れ替えるので 入れ替えが少なくてすむという寸法 自分で考え…

ALDS1_2_C: Stable Sort

問題だけ読んで、正解にしてから解説を読む、ってやったんですが 安定性の判断ってとこでけっこう悩みました まず全部、値でグループを作ってから判定することにしました C++だとどんなライブラリになるんだろうか、 今どきライブラリにもないってことはない…

『哲学の謎』

哲学の謎 (講談社現代新書) 作者: 野矢茂樹 出版社/メーカー: 講談社 発売日: 1996/01/19 メディア: 新書 購入: 21人 クリック: 195回 この商品を含むブログ (111件) を見る 野矢先生は「この人の書く本なら」と思っている数少ない人のうちのひとり自分の目…

PCAD: ALDS1_1_D、ALDS1_1_A

ALDS1_1_D: Maximum Profit 相場を見ていつ買っていつ売ると最大の利益が得られるかって問題3乗を求めるだけのこの前のを除けば初の課題なわりには要求がややこしいこういうのはちゃんと問題を読み取れるかがキモかもしれない C++で書こうと思ってたけどpyth…