「クリスマス・イヴ」とか「クリスマス・イヴ・イヴ」とかそこまで言うならいつでもイヴじゃねーかと思って書きました。まる。 # -*- coding: utf-8 -*- from datetime import date today = date.today() christmas = date(today.year,12,25) if today > christmas: christmas = christmas.replace(today.year + 1) eve = (int)((christmas - today).total_seconds() / 86400) * '・イヴ' print '今日はクリスマス{0}です。'.format(eve) クリスマス一緒に過ごしてくれる人を募集していますのでいつでも応募してくださいね!
この記事は弊チームの新人の方にシェル操作に慣れてもらうために作った課題である。 皆様のチームの新人にやってもらってもいいですね。 あとで解答編を書く。 もちろん他の方も解いてもらって構わない。 というか僕の解答以上の解答がきっとあるはずなので、それを教えて欲しい。 はてブで解答でも面白解答お待ちしてます。 さて本題。 Webアプリケーションを作っていると偉いさんとか、いわゆる企画の人とかから 「ちょっと○○がどうなってるかログから数字だせない?」 とさらっとお願いされたりする。 そこで「いや、ちょっと手が空いてなくて(こっちは忙しいんだよ糞がっ)」と答えたくなるかもしれないが、 そこは「じゃあさくっとやっておきますよ!僕にかかればちょろいっすよ!」と答えらればかっこいい。 (あまりさくっとやりすぎるとそういう細々依頼がたくさんくる諸刃の剣) 例えば以下のようなログファイルがあったとする。
オフラインでリアルタイムに「どう書く」をやるイベント第二回の http://atnd.org/events/30900 atnd を立てた。 で、問題の例を出しておく。難易度と分量はこれを目安に。 二値画像の回転 正方形の二値画像を時計回りに回転する。 画像フォーマットは、x:d のようになっており、x が画像の一辺の長さ(常に正方形)、d は16進表記の画像データ。 例えば、"3:5b8" であれば、3が一辺の長さを表す。 5b8 は 2進数で 0101 1011 1000 となる。 3x3 の画像なので必要なのは 9bit。右端の 3bit を捨ててから三桁ずつに分けて 010 110 111 となる。これが回転前の画像。 これを時計回りに 90度回すと 110 111 100 となる。一列に並べて、16進表記用に末尾に 0 を3つ足すと、 1101 1110 0000 となるので、も
Groovyでも書いてみました。 しかし、のん気に解いていたら、自分より洗練された解答で先を越されて、地団駄踏んでいるトコロ。うそーん… /** * 問題: http://qiita.com/items/9d80de41903775296ca6 */ class SpinImage { def execute(str){ def fs = str.split(":") def imgLength = Integer.valueOf(fs[0]) def hexList = fs[1].toList() def binList = [] for(hex in hexList){ def bins = Integer.toBinaryString(Integer.valueOf(hex, 16)) for(int i = bins.size(); i < 4; i++){ bins = '0'
javaでtextファイルを読み込んで、文字列を変換したい。 例えば、 test.text abcdefg hijklmn とある場合、前の文字列3つabcを取得し、次にbcdを取得、次にcdeといった具合に、最後までループし、表示するプログラムを作りたい。 サンプルコードはないだろうか? 補足 まず、abcの3文字を表示。 次に、bcdの3文字を表示。 次に、cdeの3文字を表示。 次に、defの3文字を表示。 最後に、efgの3文字を表示。そして改行。 次に、hijの3文字を表示。 次に、ijkの3文字を表示。 ………… (以下は上記と同じ) つまり、 abc bcd cde efg hij jkl klm lmn というように表示するプログラムを作りたい。 前から3文字取得し、次から1文字ずつ移動し参照する感じ?のサンプルコードがあればお願いします。
プログラミングお題の一覧はこちら ※みなさんもこのお題をお気に入りの言語で解いてみて下さい。解いたらこの記事にトラックバックをお願いします。 説明 二つのフルパスを受け取り、一つ目のパスから二つ目のパスへの相対パスを返す関数を実装せよ。 条件) ・パス区切り文字は / のみサポートする。 ・結果パスは カレントディレクトリを表す ./ もしくは、一つ親のディレクトリを表す ../ から始める。 ・パスが / で終わる場合ディレクトリとする。 ・パスが / で終わらない場合ファイルとする。 ・フルパスは / から始め、それ以外の場合エラーとする。 ・空のパス(空文字列、null、nilなど)が渡された場合、エラーとする。 ・パスに / が連続した場合、一つの / と見なす。(例: ///aaa///bbb///ccc.txt => /a/b/c.txt) ・パス区切り文字以外でファイル名とし
ブログに久しぶりにGroovyのコードが載った気がする。 お題:文字列を先頭から見て同じところまで除去 複数の文字列を受け取り、受け取った文字列をそれぞれ先頭から見てゆき、 すべてが同じ内容であれば除去した内容の文字列を返却する関数を書いて下さい。 ※関数の引数と戻り値については複数の文字列が受け渡しできれば型や方法は 問いません。 例1)hoge("abcdef", "abc123") 戻り値 => "def" と "123" ("abc" が除去される) 例2)hoge("あいうえお", "あいさんさん", "あいどる") 戻り値 => "うえお", "さんさん", "どる" ("あい" が除去される) 例3)hoge("12345", "67890", "12abc") 戻り値 => "12345", "67890", "12abc" (一致なしのため、そのまま返却される) テストコ
プログラミングお題の一覧はこちら ※みなさんもこのお題をお気に入りの言語で解いてみて下さい。解いたらこの記事にトラックバックをお願いします。 説明 複数の文字列を受け取り、受け取った文字列をそれぞれ先頭から見てゆき、すべてが同じ内容であれば除去した内容の文字列を返却する関数を書いて下さい。 ※関数の引数と戻り値については複数の文字列が受け渡しできれば型や方法は問いません*1。 例1)hoge("abcdef", "abc123") 戻り値 => "def" と "123" ("abc" が除去される) 例2)hoge("あいうえお", "あいさんさん", "あいどる") 戻り値 => "うえお", "さんさん", "どる" ("あい" が除去される) 例3)hoge("12345", "67890", "12abc") 戻り値 => "12345", "67890", "12abc" (一
Haskellお題を探していたら結構面倒そうなのが見つかった。元ネタはこちら(今流行のお題を出してみた - 糸電話式のアレ)です。 言語はHaskell。方針は、Data.Graphライブラリに丸投げ。ランダムな計算の世界はGenモナド、検索はMaybeモナド、最後は疲れてきてパターンマッチ...という感じ。これは逆に力技でやる方が勉強になるだろうなぁ... (追記) やば、XMLから逆に迷路を復元しなければならないらしい...orz {-# LANGUAGE RecordWildCards #-} import Control.Monad import Control.Applicative import System.Random import Data.List import Data.Array import qualified Data.Map as Map import qu
お題:はてなブログに移行しました 問題をみて「グラフが強連結であること」ってところまでは調べたんだが 強連結であることを判定するアルゴリズムはあっても強連結なグラフを作るものがみあたらない。 何回かグラフ関連のアルゴリズムをあさっていたら気がついた。 ある点から全域木を2回張って一方は葉へもう一方は根へ移動すれば全ての点からある点を経由してどの点にも移動できる。 全域木は最小である必要はないが一方を最小、一方を最大*1とした。 グラフのアルゴリズムは実装しても*2よかったがライブラリの解説ページがあったのでそれを使用することにした。 JUNG2.0 Tutorial いくつか自分の中でも未解決なことがあるので間違っているかも知れない。 サンプルを参考に実装してみただけなので意味がわかっていない箇所がある*3 ランダムに重みをつけて最小全域木を求めると辺の数が 99 になるのだがこれは固定な
以前、図らずも注目を集めてしまった人材獲得の件からおよそ1年経ちました。 そこで、再び募集をかけてみようと思います。今回は転職サイトは使わずにここで告知します。 【募集要項】 ●これは1次試験です。合格者には次のステップの案内を送ります。(2次試験以降は非公開で行います) ●待遇はその人の実力次第ですが、年俸で500~1000万円の間になるでしょう。基本在宅勤務です。居住地不問。 ●仕事は相場に関わりのあるソフトウェアを作ること全般です。クライアントサイドはWindows(C#)/iOS/android, サーバサイドではJava/Rubyがターゲットになります。その中から、得意なもの・興味のあるものを担当してもらいます。 ●上記の言語/プラットフォームを知らないのは問題にしない(勉強すればいいだけなので)ですが、ソフトウェア作りに適度なプライドと熱意を持っていることは問題にします。(過剰
去年、迷路を最短経路で解く問題を出題していたところが、今年も採用一次試験の問題を公開しているというのでClojureで解いてみた。 問題は以下のとおり。 ゲーム「ぷよぷよ」で、フィールドの状態がテキストで与えられたとき、消える「ぷよ」を消して次のフィールドの状態を出力するプログラムを書け。 たとえば、色をG/Y/Rで表すとき(Green/Yellow/Red)、 GGR YGG であればGが消えて Y R になります。 また、このプログラムを使って次のフィールドを与えると19連鎖ののちすべてのぷよが消えることを確認し、消える途中の様子をあわせて提出すること。 GYRR RYYGYG GYGYRR RYGYRG YGYRYG GYRYRG YGYRYR YGYRYR YRRGRG RYGYGG GRYGYR GRYGYR GRYGYR 人生を書き換える者すらいた。: 人材募集企画 2011年
さて試験問題です。 内容は、壁とスペースで構成された迷路が与えられたとき、スタート地点からゴール地点に至る最短経路を求めよ、というものです。 たとえば、S:スタート G:ゴール *:壁 $:解答の経路 としたとき、 ************************** *S* * * * * * * ************* * * * * ************ * * * * ************** *********** * * ** *********************** * * G * * * *********** * * * * ******* * * * * * ************************** という入力に対し、 ************************** *S* * $$$ * *$* *$$*$ ************
お題:時間帯重複チェック - No Programming, No Life を Scala で解いてみました。 「失敗するかもしれない処理」を記述する際に、Java では例外を使うと思いますが、Scalaでは、Option を使うという選択肢があります。そこで、今回の答案は、例外ではなくて Option を使ってみました。実引数として与えられた時刻が malformed である場合に、例外の送出をするのではなく、 Option 型の戻り値として None を返すようにしてみました。 なお、この Option はモナドとみなすことができ、for式でひたすら連結することが可能です。こんな感じで、ひたすら for で連結していくのが、私が思うに「scala っぽい答案」なのかなあと思います。 モナドとしての Option を for式 で連結 · GitHub
id:fumokmm さんが、お題:ランダム文字列 - No Programming, No Life にて面白いことしてるので、乗ってみる。 説明 半角英数からなる16桁の文字列をランダムに生成して下さい。使用できる文字は 'a'から'z', 'A'から'Z'、'0'から'9'、そして '_' とします。 Python 実装 import string import random def randstr(length): fa = [f for f in string.digits + string.lowercase + string.uppercase + '_'] return ''.join([fa[random.randint(0, len(fa))] for i in range(0, length)]) if __name__ == '__main__': print ra
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く