シェルスクリプトの変数の代入・参照、値が空のときの処理

参考 : プロフェショナル・シェルプログラミング (アスキー書籍) シェルスクリプトの変数の代入と参照 # 変数の代入は前後にスペースを入れない name=Jonh # 変数の参照は"$"をつける echo $name # => John # これでもOK echo ${name} # => John # 文字列の…

React.js と Redux でナンプレのサイトを作った

作った。日替わりナンプレ楽しかった。

「カリー化」を例でさっくり理解する

カリー化を例でさっくり理解する 「カリー化」です。 いきなり定義から入ると数学っぽくなってやる気がなくなるので、例から入ります。以下、JavaScript です。 カリー化の基本 べき乗を求める関数 pow(x, y) があるとします。 function pow(x, y) { return …

反転(2題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすらといている。反転。端っこを決めるとそこからカタカタと自動的に全部…

しゃくとり法(2題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすらといている。 POJ2566: Bound Found 2566 -- Bound Found 問題概要 N …

二分探索:その他(2題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすらといている。二分探索。その他。 POJ1759: Garland 1759 -- Garland …

二分探索:k 番目の値を検索(2題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすらといている。二分探索。k 番目の値を検索する問題である。 10^9 個く…

二分探索:k 番目の値を最小化(1題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすらといている。二分探索。k 番目の値を最小化する問題である。 POJ3662:…

二分探索:平均の最大化(2題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすらといている。二分探索。平均の最大化の問題である。 やっていることは…

二分探索:最小値の最大化(4題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすらといている。第3章の章末に入った。二分探索。最小値の最大化である…

繰り返し二乗法(2題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすらといている。繰り返し二乗法。べき乗の高速な計算アルゴリズムなんだ…

素数(4題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすらといている。素数の問題。エラトステネスのふるい。有名だし、これと…

ユークリッドの互除法(2題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすらといている。今回はユークリッドの互除法。最近はユークリッドの互除…

最小全域木:クラスカル法(4題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本の章末で紹介されている問題をひたすら解いている。 今回はグラフの最小全域木を求める問題。 最小全域木とは、(連結なグラフ…

【Python】組み込み関数zip()でディクショナリを初期化する

zip()はディクショナリの初期化に向いている。 zip()の基本的な使い方 公式ドキュメント2. 組み込み関数 — Python 3.4.3 ドキュメントより zip(*iterables) それぞれのイテラブルから要素を集めたイテレータを作ります。この関数はタプルのイテレータを返し…

最短経路問題:ダイクストラ法、ベルマンフォード法、ワーシャルフロイド法(6題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称:蟻本)の章末で紹介されている練習問題をひたすら解いている。今回は最短経路問題。はじめに最短経路問題を解くアルゴ…

Union-Find木(3題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(蟻本)の章末で紹介されている練習問題をひたすら解いている。 今回は、Union-Find木を使う問題。 Union-Find木に関するいち…

プライオリティキュー(2題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本の章末で紹介されている練習問題をひたすら解いている。 今回はプライオリティキューを使う問題。 POJ2010: Financial Aid 2010…

動的計画法:少し考察を要する問題(5題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本(通称「蟻本」)の章末で紹介されている練習問題を淡々と解いている。 今回は動的計画法の第三弾。難しかった。しかも解いてか…

動的計画法:漸化式を工夫して高速化(3題)

漸化式を工夫して高速化をはからなければならない動的計画法の問題。 だいたい最初に思いつく漸化式が、間違っているわけではないけれど効率が悪く、提出するとTime Limit Exceededになる。 そこで、漸化式を改善して時間内に解けるようにしましょうね、とい…

個数制限付き部分和問題(POJ1742)

1742 -- Coins POJ1742を解こうとしたが、蟻本P.62の「個数制限付き部分和問題」とほぼ同じだった。 この問題の漸化式の作り方が難しかったので、ここで整理しておく。以下、蟻本P.62-63を参考に書いた。 蟻本:プログラミングコンテストチャレンジブック […

基礎的な動的計画法(5題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ いわゆる「蟻本」である。この章末で紹介されている練習問題をひたすら解いている。 今回は基礎的な動的計画法。基礎的といっても最後…

貪欲法…その他(5題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本の章末で紹介されている練習問題を解いている。貪欲法(その他)だ。 貪欲法とはいっても、この問題群は要素を選ぶ順番をうまく…

貪欲法…線分(3題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本の章末で紹介されている練習問題をひたすら解いている。解説だけでなくテーマに沿った類題も豊富に紹介してくれているのがこの…

全列挙(4題)

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ この本の章末で紹介されている練習問題をひたすら解いている。 競技プログラミングの世界で通用するような人は、最低でも1000題は解い…

幅優先探索(3題)

幅優先探索が使える問題 「プログラミングコンテストチャレンジブック」第2版(マイナビ)の章末(p.125)で紹介されている練習問題を淡々と解いている。 こういう基本的なアルゴリズムは問題を見たら手が勝手に動くくらいに練習しないと。幅優先探索が使える…

深さ優先探索(4題)

「プログラミングコンテストチャレンジブック」第2版(マイナビ)の章末で紹介されている練習問題を解いて競技プログラミングの練習をしている。今回は「深さ優先探索」(p.125)を4題。深さ優先探索が使える問題の特徴は、 1. 片っ端から全探索してもあま…

【Ruby】Open-URIは例外を拾って404をチェックする

以下のコードでは、URLが404 Not Foundのときにエラーになって止まる。 require 'open-uri' url = 'http://example.com' html = open(url) do |f| f.read end URLを開けなかったら例外OpenURI::HTTPErrorを投げてくれるので、ちゃんと捕捉する。 require 'op…

スクレイピングで正規表現の練習

今すぐ始めるスクレイピング nokogiriとかのスクレイピング用ライブラリを使わずに標準ライブラリ'open-uri'だけでスクレイピングをします。HTMLソースを取得するだけならこれで十分。以下のサイトを参考にスクレイピングしたいサイトのHTMLソースをまるごと…

はてな記法の練習

はてな記法に慣れたいのでメモ 見出し *見出し 小見出し **小見出し 小小見出し ***小小見出し リスト1 リスト2 リスト3 -リスト1 -リスト2 -リスト3 定義リスト 定義リスト :定義リスト:定義リスト 表 表 表 |*表|表|表| ソースコードの表示 class Foo def …