simanのブログ

ゆるふわプログラマー。競技プログラミングやってます。Ruby好き

Ruby で赤黒木を実装してみた

この記事は Okinawa.rb Advent Calendar 2019 の 15日目の記事です。 結論 実装しました。 https://gist.github.com/siman-man/a8ed58effeaaf59855deac490574760c 二分探索木 前々から赤黒木を実装しようと思っていたのですがずっと放置していたので、今回実…

RailsDM 2019 で登壇してきました

RailsDM 2019 で登壇 RailsDM 2019 で「Ruby のコード解析の「静」と「動」」というタイトルで発表してきました。 去年の年末あたりに平野さんから登壇依頼が DM 経由で来て「せっかくの機会なのでやるか!」と思い引き受けることにしました。(CFP 形式だと…

今年作った gem の紹介 (2017)

この記事は Okinawa.rb Advent Calendar 2017 4日目の記事です。 自分は思いついたアイデアをすぐ gem にするようにしているのですが、今年は結構作った気がしたのでそれを紹介したいと思います。 spellcheck 主に技術系の単語にフォーカスしたスペルチェッ…

北大日立マラソン参加記

参加してました。 https://hokudai-hitachi2017-1.contest.atcoder.jp/ やったこと とりあえず submit (52935) 左上から丁寧に並べる 焼きなましする (52935 -> 149624) 近傍は ランダムな2点の位置を交換する 温度管理を調整 (149624 -> 155183) 雑に設定し…

PoisonedWine 参加録

問題 https://community.topcoder.com/longcontest/?module=ViewProblemStatement&rd=16944&pm=14636 複数のワインの中から、毒に反応する試験紙を使って「毒入りのワイン」を見つけ出し「毒入りではないワイン」をいかに多く集めることが出来るかという問題…

MM92 Lighting 参加録

Marathon Match 92の「Lighting」に参加していました。 問題 SxS のセル状空間に光源の強さがDのL個のライトをいい感じに設置して、なるべくたくさんの空間を照らしましょう。 すごいシンプルでした。美術館問題に似た問題だなと思いました。 方針 大きく分…

RubyのEnglish.rbソース読み

Rubyの標準ライブラリを読んでいく、前回は3年前に ostruct を読んだ RubyのOpenStructソース読み 今回は English.rb を読んでいく。 English.rbとは何か English.rbはRubyの特殊変数に対してわかりやすい別の名前を付与するライブラリである。Rubyの特殊変…

TCO 16 Round3参戦記録 - TerrainCrossing -

TCOMMの最終ラウンドが終わりました。https://community.topcoder.com/longcontest/?module=ViewProblemStatement&rd=16704&pm=14283 問題文 縦横長さが S あるフィールドがあります。フィールド上にはN個のアイテムとN個の目的地が存在しています。あなたは…

OnlineExam 参戦記録

Codeforcesで開催されていたマラソンマッチに参加してました。codeforces.com 問題文 オンラインの試験があります。問題は全部で5000問あり、各問題は「YES」または「NO」で解答を行います。採点については各問題ごとに正解不正解を判別し不正解の数が2000に…

NYC Lightning Round 参戦記録

診断人さんのツイートで気づいて参戦しましたhttps://community.topcoder.com/longcontest/?module=ViewProblemStatement&rd=16756&pm=14282 topcoder1日マラソン開催されるのであれば、すぐ寝る。されないのであれば、プログラミングして寝る。— nico_shin…

TCO 16 Round2参加記録 - StarTraveller -

TCO 16 Round2 が終了しました。https://community.topcoder.com/longcontest/?module=ViewProblemStatement&rd=16703&pm=14268 問題文 ある宇宙空間にN個の星とM個の宇宙船とK個のUFOが存在しています。宇宙船は星と星の間を移動する際にその星と星の間の距…

TCO 16 Round1参加記録 - CutTheRoots -

久々の日記です、今年もTCOの季節になりました。Round 1の問題は「CutTheRoots 」で、簡単に説明すると植木鉢の中にある植物を根っこをなるべく切り取らないように切り分けるかの問題でした。TopCoder 図としては下のような感じです。 最初は複数の植物がの…

現在開催中 or 今後開催予定のマラソンマッチ系コンテストについて

これは 「Competitive Programming (その2) Advent Calendar 2015 」の12日目の記事です。 www.adventar.org マラソンマッチとは、2週間から長いもので1ヶ月以上の期間をかけて行われるコンテストです。有名なところではTopcoderのMarathon Matchがありま…

「Code Festival A If you cannot solve this」参加記録

CodeFestivalの短縮王の事前公開問題があったのでそれをやっていました。anarchy golf - Code Festival A If you cannot solve this問題としては クラスメイトのテストの点が与えられる。 クラスの平均点の半分以下である点数を赤点と定義する。 s1が赤点な…

【コードゴルフ】シンプル・ライフゲーム 参加日記

ここ数日コードゴルフという競技で遊んでいました。codeiq.jp題材としてはライフゲームというゲームをいかに短く書くかの勝負で、今回Ruby部門で一番短くかけました。d.hatena.ne.jp今回書いたコードです。(136byte) n,h,w,*f=*$<;n.to_i.times{z=w=w.to_i;f…

MM89参加日記

初日 問題文公開、お題は「迷路が与えられるので、セルを修正してたくさん探索しような!」ですとりあえず、まず迷路の盤面から'U'を別の要素に置き換えてみるテスト。Uターンマスはその時点で探索失敗してしまうので(盤面の外側だと大丈夫だけど1pt) 邪魔…

PathDefense日記(Topcoderマラソンマッチ)

0日目 今日からTCO MM Round2の始まり始まりー、いつも対戦後に戦略とかをツイッターに流しているけど、 今回は日記を使ってコンテスト中の考えとかを雑にまとめてみるテスト。 1日目(2015/05/26) 5:00 起床 起きて問題文を読む。和訳が面倒だ...ひたすらGoo…

Rubyで配列の最大値と最小値を同時に取得

rubyでは配列の最大値と最小値を同時に取得出来るminmaxメソッドがあります。minmaxを使わないver array = [1,2,3,4,5] min = array.min max = array.max puts min puts max 1 5使うver array = [1,2,3,4,5] min, max = array.minmax puts min puts max 1 5…

京都旅日記 最終日

今日で最終日です。朝は荷物をまとめて、忘れ物がないかチェックしてホテルのチェックアウトを行いました。ちょっと荷物が増えてるのでトランクの中身がかなりギチギチになりました。。。 サイクリング 京都駅から関西空港までは特急はるかで向かうことにし…

京都旅日記 5日目

今日は嵐山を目指します。 地下鉄 → 嵐電 → 嵐山 1回乗り換えして向かいます。嵐電の中では太秦近くになると、暴れん坊将軍のBGMが流れて面白かった。到着 竹林 早速有名な竹林へと向かいました。今日は土曜日ということもあってめちゃめちゃ人が多かったで…

京都旅日記 4日目

4日目は日本三景の1つである天橋立に行ってみました。 特急はしだてで天橋立へ 行きは特急はしだて号の始発で向かいました。乗り換えなしで一直線で天橋立まで行くことが出来ます。電車に揺られること2時間、天橋立駅に着きました。道中山が多かったとうちゃ…

京都旅日記 3日目

今日からはタスクが無くなったので自由に観光できるぞ! 最初は伏見稲荷大社 ということで、まずは伏見稲荷大社に向かいました。画像でよく見る千本鳥居を見てみたかったので。平日にもかかわらず観光客で大変賑わってました千本鳥居の入り口!うひょーまさ…

京都旅日記 2日目

今日はsamurAI codingの決勝当日。 2日目の朝 朝8:30に起きて、ホテルの朝食が9:30までだったのでお風呂入って朝食。バイキング形式で和洋折衷な取り方をしてしまった。朝食を終えたら11:30ぐらいまで昼寝して、そのあと会場の京都大学に向かいました。 会場…

京都旅日記 1日目

今日から京都に来ています。沖縄から京都まで色々あって疲れた。。。 17:40の便で京都へ 搭乗するまで、暇だったので那覇空港内の店でうどん食べたけど完全にハズレだった。(ネギの味が強すぎてうどんの味がしない) 19:30ぐらいに関西空港到着 初めて来た…

今年の目標(2015)

去年立てた目標は全く達成できなかったので、今年こそは達成したいと思います。 詰み本の消化 今年はまず「積み本」の消化を目標にしたいかなと思います。自分はその分野にちょっと興味を持つと すぐ専門書を購入して、積んでしまう癖があるみたいで、今の詰…

今年を振り返って(2014)

今年を振り返ってみようかなと思います。今年自分はこんな記事を書いていました。今年の目標(2014) - simanmanのブログ 今年の目標(2014) - simanmanのブログ・topcoder Algorithm部門のレート1500以上(未達成) ・topcoder Marathon部門のレート2000以上(未…

Rubyで全ての約数を出すメソッドを作った

「How Many Divisors?」 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ITP1_3_DAOJの問題を解いてて「約数の配列だして、upper_boundとlower_boundをとれば終わりやな」と思ったのですが、Rubyに今の要素全部無かったので、作りました。 requi…

Rubyの文字列連結の速度比較

Rubyで文字列連結のメソッドの動作速度を比較してみました。 require 'benchmark' Benchmark.bm do |x| NUM = 10000 word = "Hello" x.report(:add) do str = "" NUM.times { str += word } end x.report(:concat) do str = "" NUM.times { str.concat(word)…

rubyのDateクラスの謎

Dateクラスは最初から存在しているみたいなのですが、インスタンスメソッドが無いです。 p Date.instance_methods(false).count #=> 0 require 'date' p Date.instance_methods(false).count #=> 68 特に困るわけでは無いですが、すごい気になります。

OSC Okinawa 2014に参加 & LT発表してきました!

今年も沖縄でOSCが開催されたので、1人で行ってきました!今年は「去年に比べて、発表内容の理解が出来たかな」と思うと同時に「学ぶべきことがまだたくさんある」と感じたカンファレンスでした。 ・「業務アプリケーションにおけるこれからのWeb開発」 今年…