- 作者: 秋葉拓哉,岩田陽一,北川宜稔
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2010/09/11
- メディア: 単行本(ソフトカバー)
- 購入: 52人 クリック: 1,538回
- この商品を含むブログ (83件) を見る
まだ4割ほどしか読んでいないが、勉強させてもらっている。Google Code JamとかはProject Eulerとはかなり文化が違う。読んでいていろいろ違和感がある。このへんについてはそのうち書くかも。
Priority Queueというのが出てきた。名前は知っていたが機能は知らなかった。とにかく大きい(小さい)ものから順に出してくれるキュー。ネーミングが悪いと思う。STLにもある。STLは昔から使っているが、以前はほとんどドキュメントがなくて、ネットのしかも英語の資料を読んで勉強していた(だから「iterator」はいまだに「イテレータ」とは読めない)。ネットで読むとどうしてもつまみ食いになりがちである。本だと最初から通して読んで身につく。
PythonにもPriority Queueは用意されている。
from Queue import PriorityQueue pq = PriorityQueue() pq.put(5) pq.put(1) print pq.get() # 1 pq.put(7) print pq.get() # 5 print pq.get() # 7
これを見て思い出したのが、Project Euler 50。Priority Queueあれば比較的に楽に書ける。しかし、この問題はここはクリティカルでないのでスピードはたぶん変わらない。