ABC032に参加した
Atcoderで行われているAtcoderBeginnerContest,通称ABCに参加した。
Welcome to AtCoder Beginner Contest 032 - AtCoder Beginner Contest 032 | AtCoder
今までいくつかこういうのに参加してたけど、参加記ってめんどくさかったので書いたことなかった。他の人が書いてるのを見て、思考の整理になりそう&後々振り返るときなどに役に立ちそうと思ったので試しに書いてみることにした。
A. 高橋君と青木君の好きな数
A,B二つの数で割れる,N以上の数を出力せよ、という問題。
最小公倍数を使って・・・とか考えたが,制約を見て全探索すればいいやと思って妥協して実装した。AC時間は開始6分ぐらい。
a = gets.to_i b = gets.to_i n = gets.to_i ans = n loop do if ans % a == 0 && ans % b == 0 break end ans += 1 end puts ans
B. 高橋君とパスワード
文字列Sに対して、長さKの部分文字列の数Tを数え上げる問題。
- K > Sの場合は0を出力した。
- K ≦ S の場合、見つけた部分文字列を配列Tに保存していく。
i 文字目から i + K 文字目までの部分文字列 tmp を切り出す。
これが新しい部分文字列の場合、 T に保存する。
最後に T の長さを計算する。
AC時間は開始14分ぐらい。
s = gets k = gets.to_i t = [] if s.length < k puts 0 else for i in 0..(s.length - k - 1) tmp = s[i..(i + k - 1)] if t.include?(tmp) next else t.push(tmp) end end puts t.length end
C 列
長さNの数列S、整数Kがある。Sのうち、すべての要素の値の積がK以下となるような、連続した部分列の最長の長さを求める問題。
Sに0が含まれる場合、解はNとなる。
Sに0が含まれ、かつK>0の場合、要素の積がK以下となるような配列sと、その積mを作成する。数を一つ取得するたびにmを再計算する。そして、m>Kの間、先頭の要素をpopしてmを再計算する。この際、sの長さの最大値を保存しておく。
だいたいの方針は上の通り。再計算に関して、はじめ、数の出入りがあるたびにすべての要素について再計算していてTLEした。考えて、出入りする数に関してだけ計算すれば良いと気づき変更した。変更の際、出入りする要素が0のとき、mがnilのときに注意する必要があった。(2REした)
尺取り法なるアルゴリズムがあって、それに似たようなものになったと思う。
AC時間は開始65分ぐらい。(一回目の提出は30分ぐらい)
n, k = gets.split.map(&:to_i) s = [] max = 0 m = 0 n.times do s.push(gets.to_i) if s[-1] == 0 max = n break end if m == 0 || m == nil m = s.inject(:*) else m *= s[-1] end while m.to_i > k t = s.shift if t.to_i != 0 && m.to_i != 0 m /= t else m = s.inject(:*) end end if s.length > max max = s.length end end puts max
情報系の大学生の自分が2015年に読んだ本のまとめ
はじめに
読んだ本について
大学教師が新入生に薦める100冊: わたしが知らないスゴ本は、きっとあなたが読んでいる
【VIP】屁理屈抜きでとんでもなく面白い小説教えれ てんこもり。
プロのライターがガチで選んだ徹夜必至の最高の小説25選|Career Supli
読んだ本の紹介
SF
SFは、名作と呼ばれる物を端から読んでいこうと思い読んだ。途中で他ジャンルのものを読むことが多くなりまだ読んでいない本があるのでそこを読み進めていきたい。
星を継ぐもの 、ガニメデの優しい巨人 、巨人たちの星 ☆☆☆☆☆
夏への扉 (ハヤカワ文庫SF) ☆☆☆☆
一九八四年 ☆☆☆☆
華氏451度 ☆☆☆☆
たったひとつの冴えたやりかた ☆☆☆☆
ホラー
角川ホラーを3冊読んだ。小説でのホラーというのは、映画や漫画と異なり音や映像、絵などの直接的な恐怖を受けることがないのでホラーが苦手でも楽しめると思う。
パラサイト・イヴ ☆☆☆
その他小説
ホラー、SF以外のジャンルの本をあげる。これらの本はあまり力を入れずに読めるので、息抜き感覚で読んでいた。
大聖堂 ☆☆☆
塩狩峠 ☆
ガダラの豚 ☆☆☆
The Rosie Project ☆☆☆☆
カラマーゾフの兄弟 (上巻のみ)☆☆☆
アルジャーノンに花束を ☆☆☆☆
知能にハンデを持つ主人公が、頭の良くなる手術を受け、天才になり・・・という話。主人公の知能レベルが変わっていく中で、周りの人との関係も変わっていく。読者としては客観的に見られるが、実際自分が作中の登場人物だったらどうだろうか・・・と考えながら読んでいた。
役に立つ系
物事の考え方や物理、科学について書いている本。とても役に立つ本が多かった。
東大とかハーバードの先生が書いたって煽りが多い
暗号解読 ☆☆☆☆☆
これからの「正義」の話をしよう ☆☆☆☆
沈黙の春 ☆☆
知的複眼思考法 ☆☆☆☆☆
明日の幸せを科学する ☆☆☆☆☆
主役はダーク ☆☆☆
情報系
情報系の人向けの本で、特に専門的でないものをここにあげる。
珠玉のプログラミング ☆☆☆☆
コードを書いて問題を解決するために、どういう点に気をつけどう考えていくかが書いてある。競技プログラミングみたいな内容であり、実際の業務には役に立たないと思えるかもしれない。しかし、大事なのは考え方であり、この本の内容ぐらいはできていないとだめだと思う。
リーダブルコード ☆☆☆☆
それがぼくには楽しかったから ☆☆☆☆
Linuxを開発したリーナス・トーパルズの自伝。技術の話ではなく、なぜそれを作ったか、何を考えていたかが書いてある。 雲の上の人のように感じるが、本を読むと印象が変わると思う。
おわりに
以上29冊でした。思ったより少なかったので、来年はもっと読みたい。おすすめの本があったら是非紹介してください。
リーダブルコード 読書感想
下書きのまま数ヶ月眠っていたこの感想だが、あとで2015年の読書録をアップするので短いけどこの記事もアップする。
かの有名なリーダブルコードを読んだ。
おすすめの技術書、みたいな記事だとほぼ確実に入っているよね、この本。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)
- 購入: 68人 クリック: 1,802回
- この商品を含むブログ (132件) を見る
読んだ感想
nothing new.
と言えるようになりたい。変数の付け方から、コメントの書き方、さらには関数の構造まで、いかにコードを読みやすくするかってのが丁寧に書いてある。
あとがきにも書いてあったけど、この本には難しいことは書いてないしすぐに実践できる。でもそれを、普段からずっと実行するのはむずかしい。どうしてもなまけたくなるし、疲れたりしてるとわかりにくいコードを書いてしまう。大事なことは、この本の内容を無意識に、常識にすることなんだろう。
アジャイル開発とスクラム 読書感想
今回は読書感想記です。最近意識して本を読むようにしているので、読んだ本について簡単に感想を書くようにしようかなと気が向いた。
本を読み終わったのは去年の末で、実はこの記事は下書きのまま数ヶ月ほっておかれていた
もうだいぶ前のことだけど、バイト先でがっつりアジャイル開発、スクラムについて勉強した。(学んだことのまとめは別に書く)
その流れで、去年の12月ぐらいのAmazonのセールで安くなっていたこちらの本を購入して読んだので感想を書く。
アジャイル開発とスクラム~顧客・技術・経営をつなぐ協調的ソフトウェア開発マネジメント
- 作者: 平鍋健児,野中郁次郎
- 出版社/メーカー: 翔泳社
- 発売日: 2013/01/18
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 12回
- この商品を含むブログ (19件) を見る
こちらの本は、実践的なスクラムの手法というより、実際にこんな会社がスクラムを導入したら上手く行ったよ!みたいな感じの内容。
これ一冊でスクラムを始めるのは無理だけど、チームの意識を高めるために読んだりとか、スクラムを導入するのを嫌がる上司とかに読ませたらいいと思った。
これとは別にエッセンシャルスクラムも読み始めているので、こちらも読み終わったらレビューする予定。
vpsを借りた。その2、独自ドメインの取得
2ヶ月ぶりの更新。アウトプット大事なのはわかるが難しい。めんどくさい
ドメインとってみる
vpsを借りたので、晴れて自由に使えるサーバーを手に入れた。次に(同時に)やったことは、独自ドメインの取得。
ドメインは、お名前ドットコムで取得した。
手順は、
- 欲しいドメインが使われてないか検索
- 使われてなかったらそのまま契約
って流れ。
契約の時に、Whois情報公開代行を設定する。
これは、ドメインを持ってるのが誰かを調べるWhoisっていうのがあるんだけど、何も設定しないとお名前.comに登録した自分の個人情報が登録されるらしい。会社とかの場合はそれでもいいんだけど、個人で使う場合は困る。そこで、自分の情報の代わりにドメインを取得した会社の情報を設定することができる。
これがWhois情報公開代行サービス。
このサービス、新規登録時に設定すると無料で設定できるんだけど、あとから設定するには別途料金がかかるらしい。
そこで登録時に申し込んでおく。あとは流れに沿って、支払い方法とかを入力すると晴れて独自ドメインが取得できる。
ping打ってみる
取得できたらまずはドメインにpingを打つことを目標にした。
そのためには、ドメインにAレコードを設定してvpsにてドメインの設定を行う。
①Aレコードの設定
お名前.comのDNS関連機能設定→設定したいドメインを選ぶ→DNSレコード設定を利用する
と移動して、
TYPE:A
VALUE:自分のvpsのIPアドレス
を入力。ホスト名は空白で、その他は変更しない。その後、右端の追加を押す。
で、ページ下部の確認画面へ進むを押す。
この前後で、ネームサーバーをお名前.com指定のものに設定するように言われるので、設定する。
②ドメインの設定
借りているvpsで他社管理ドメイン設定をするところがあったので、そこで自分のドメインをホスト名として登録した。
適当この辺、vpsごとに違うと思うので、それぞれググったほうがいいと思う。
これでpingを打ってみる。
ドメインがDNSに浸透するまで最大で3日間ぐらいかかるらしいので、失敗した場合は設定とかを見直しつつちょっと待ってみるとよいかも。
自分の場合は次の日には問題なく出来た。