Hatena::ブログ(Diary)

hogehoge @teramako RSSフィード

 | 

2009-12-15

10分プログラミング

プログラミングに自信はないけど、挑戦した。

あまりに簡単なので制限時間を10分としてやってみてください。

これ以上かかった人は

自分はかなりプログラミングができない。

とつらい事実を認識しましょう。

10分でコーディング|プログラミングに自信があるやつこい!!

すみません、馬鹿なので仕様を理解するのに3〜4分かかりましたorz

(function(n,s){let a=[],i,k;for(i=0;i<s.length;i++){k=i%n;if(!a[k]){a[k]="";}a[k]+=s[i];}return a.toSource();})(4, "1111222233334444")

メモがわりにTwitter投稿しておいたので、140に収まるように頑張りました。

実行結果は["1234", "1234", "1234", "1234"]となり、{"1234", "1234", "1234", "1234"}とならないのは勘弁してください><

あと、エレガントじゃないのも勘弁を。っていうかエレガントなコードってどんなの?

追記

こういうコードだと、関数型っぽくていいかも?

//テーマはvar, letを使わないこと
(function(n,c){
  c.substr(0,c.length-c.length%n).split("").reduce(
    function(p,c,i){
      p[i%n]+=c;
      return p;
    },
    Array.apply("",Array(n)).map(function()"")
  ).toSource()
})(4,"111122233445a")

カード枚数のキリが悪いときのことをぜんぜん考えてなかったので修正した

 |