読者です 読者をやめる 読者になる 読者になる

No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

どう書く?orgにログインできないのでひとまずここにお題を置いておく

プログラミングお題の一覧はこちら はじめに タイトルの通りなんですが、どう書く?orgに思いついたお題を投稿しようと思ったらなぜかログインできなくなっている*1ので、ひとまずこのブログにお題を書いておく。あとで復活したら改めて投稿しようと思う。 …

Re:数字混じり文字列ソート

お題: Server error 投稿: Server error こんな感じになりました 動作確認はGroovy Version: 1.7.3 JVM: 1.6.0_20にて。 考察 ソートする際に数値と数値でない部分に分けて、数値のところは数値でソートするような形で実装してみました。 関連記事にも挙げま…

Re:階層的なキーの連想配列化

前回のどう書く?org投稿から約1年ぶりくらいで、久々に投稿してみました。お題: Server error 投稿: Server error こんな感じになりました def data = [ ['東京都', '区部', '千代田区', 'object1'], ['東京都', '区部', '中央区', 'object2'], ['東京都', …

Groovyでケブンッリジ関数を

Server error でお題になっていたのでやってみた。 私が投稿したのはこんな感じ。 source = """\ こんにちは みなさん おげんき ですか? わたしは げんき です。 この ぶんしょう は いぎりす の ケンブリッジ だいがく の けんきゅう の けっか にんげん …

Re:アルファベットの繰り上がり

お題: Server error 投稿: Server error こんな感じになりました println alphaList('A'..'Z', 100)*.join()*.trim().join(', ') /** アルファベットのリストを返却 */ def alphaList(values, num) { // 必要な桁を求める int digit = { int d = 1; int size…

Re:RFC 4180対応版 CSVレコードの分解

お題: Server error 投稿: Server error RFC 4180対応版*1でCSVを分解するお題でした。 こんな感じになりました def csv = '''\ "aaa","b bb","ccc",zzz,"y""Y""y",xxx\ ''' resolveCSV(csv).eachWithIndex{ it, idx -> println "${idx+1} => ${it}" } /** C…

Re:分数を小数に展開, 水の移し替えパズル

分数を小数に展開 お題 整数a, bを受け取り,分数a/bを小数に展開した文字列を返す関数/メソッドを作成してください。結果が循環小数になる場合は,循環部を{}でくくってください。例:a=3, b=8 → 0.375 a=3, b=14 → 0.2{142857}与えられる整数a, bは次の条…

Re:データの圧縮と展開

お題: Server error 投稿: Server error 圧縮、展開ってことなので 圧縮、展開ってことなので、java.util.zip.*パッケージを使って実装するのが一番いいのかなということで。動作確認はGroovy Version: 1.5.7 JVM: 1.6.0_10にて。 /** 圧縮 */ byte[] compre…

Re:固定長データ

お題: Server error 投稿: Server error このお題、固定長データの読み込みということで、ここぞとばかりに今更Java1.4で追加されたNew I/O を使ってやってみようと思い、勢いで投稿してみました。 一応動いてはいるんですが、エレガントさはないですね。Gro…

Re:自然数の分割(別表現)

お題: Server error 投稿: Server error 下書き中で詰まってます。下記コードだと、出力される組み合わせが足りない。 下書き中で詰まってます def num = args[0].toInteger() println "young ${num}" def startTime = System.currentTimeMillis() young(num…

Re:全ての組み合わせ

お題: Server error 投稿: Server error 誰も使ってなかったようなので、List#combinations()を使ってみました。 (動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10) def crossProduct(Object... params){ params*.toList().combinations() } println crossPr…

Re:ピラミッドを作る, 横向きのピラミッドを作る

お題: Server error Server error 投稿: Server error Server error 縦向きと横向きのピラミッドを作るお題を解いてみました。 両方とも、今さら感がありますが、気にせず投稿。 投稿したコード (動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10) // 縦向き…

Re:文字列の反転(括弧の対応を保存)

お題: Server error 投稿: Server error 括弧の対応を保ったまま、文字列を反転させるというお題。(動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10) こんな感じになりました def reverseString2(String text) { def pairs = text.replaceAll(/[^\[\]\(\)\{\…

Re:タブ区切りデータの処理

お題: Server error 投稿: Server error いまさら投稿してみた。分かりやすく書いたつもりです。 ポイント ヘッダとデータは #head(), #tail()を使って取得。 ヘッダごと入れ替え時は、列を1本ずつ取得してから、#transpose()で行・列を入れ替え。 用意する…

Re:作業予定表から週単位で作業量を積み上げる

お題: Server error 投稿: Server error 考察 日付の範囲から週の範囲を作る部分とか、リストを縦表示するあたりが小慣れてないなぁ…。まだまだ修行が足りない。以下は日付の範囲から週の範囲を作る部分 /** 範囲を週の範囲に変換 */ def toWeekRange(dispRa…

Re:コード中の文字の頻度分析

お題: Server error 投稿: Server error あえて、なるべくGroovyの標準機能を盛り込んで作成してみました。 利用したのは以下。 as, #unique(), #inject(){}, #sort(){}, #grep(){}, #each{}

Re:IPv6アドレスの短縮

お題: Server error 投稿: Server error ネットワークは情報試験でちょこっとだけかじったので、ちょっとIPv6にも親近感が沸きます。 IPv4が枯渇するのも時間の問題ですし、今後、こういったコードが至るところで書かれることになるんでしょうか。 考察 投稿…

Re:エレベータの制御(基本編)

お題: Server error 投稿: Server error エレベータシミュレーションは楽しいですね。 考察 今回投稿したコードの、待っている人がいる最上階を探すための // 待っている人がいる最上階を探す def nextList = [] elev.floors.tail()*.persons.eachWithIndex{…

Re:指定されたフォルダ以下のゴミ掃除

お題: Server error 投稿: Server error これは、AntBuilderを使う絶好のチャンスかなと。 参考 www.ikepon.jp: AntBuilder www.ikepon.jp: AntBuilder(入れ子) deleteタスク - Deleteタスク(削除) - Apache Antの使い方

Re:道順を数える

お題: Server error 投稿: Server error Groovyで一番のり♪ Groovyの練習も兼ねてるんで、ソースを短くすることはあんまり考えてません。マップのキーにGStringを使う場合の注意点を踏まえて、XY#toCoordinate()のカンマ付き座標文字列は as String で返却し…

Re:島の数をカウントする

お題: Server error 投稿: Server error 他の人が簡潔に記述していたので、あえて私はクラスを作ってみたりクロージャをカリー化してみたり、色々やって重厚な感じに仕上げてみました。おかげでGroovyの勉強*1になりました。これ、まだ途中でサーチする時に…