Skip to content

Instantly share code, notes, and snippets.

View jinjor's full-sized avatar

Yosuke Torii jinjor

View GitHub Profile
@jinjor
jinjor / gemstring.txt
Last active August 29, 2015 13:56
CodeIQ「ジェムストリング問題」の回答
5578864439
ENV: Scala
POINT: 目的のパターンに至るまでの組み合わせの数を再帰的に求める。一度求めた値は再利用して計算量を抑える。
■POINTの補足
種類毎の宝石数をベクトルa、その時の全パターン数をf(a)であらわすと、
aが1次元の時、f(a)はaの絶対値となる。また、aから各種類の宝石のうちひとつを選んで取り去った
ベクトルの集合Bに対して、f(a)=Σ(f(b)+1) | b<-B
例えば、宝石"aaabcc"が与えられた時、全ての組み合わせは
=f([3,1,2])
@jinjor
jinjor / ticketgobble.hs
Last active August 29, 2015 14:01
CodeIQ「チケットゴブル問題」
import Data.List;import Data.List.Split;import Data.Ord;l=length;f(_,b,_)=b;g(_,_,m)=m;d=comparing;y(p,e,r)b=(p,r,m$dropWhile((>=)e.f)b):b;m[]=[];m t=maximumBy(d l)[a:b|(a,_,b)<-t];a s=(show.l$s):s>>=id;main=do c<-readFile"tickets.txt";putStr.a.sort$m$foldr y[]$sortBy(d g)[(' ':l!!0,w 3,w 1)|s<-lines c,let l=splitOneOf" -/"s;p=read.(!!)l;w i=31*(p i)+(p$i+1)]
@jinjor
jinjor / ticketgobble2.hs
Last active August 29, 2015 14:01
CodeIQ「チケットゴブル問題」貪欲法 303bytes
import Data.List.Split;import Data.List;import Data.Ord;b(_,_,a)=a;p q[]=[];p q((n,w,a):t)|q<w=n:(p a t)|True=p q t;y a=(show.length)a++(a>>=id);main=do e<-readFile"tickets.txt";putStr.y.sort$p 0$sortBy(comparing b)[(' ':l!!0,w 1,w 3)|s<-lines e,let l=splitOneOf" -/"s;p=read.(!!)l;w i=31*(p i)+(p$i+1)]
@jinjor
jinjor / gist:5dd47b5b82ea3acd3104
Last active August 29, 2015 14:07
荒削りテンプレート
<template id="target">
<div>
<span foo="{{ bar }}">{{foo}}</span>
<template repeat="{{ bar , i in list }}">
<div><span>{{i}}: </span><span>{{foo}}</span><span>{{bar}}</span></div>
</template>
<div><a>{{bar}} dayo{{foo}}</a></div>
</div>
@jinjor
jinjor / gist:da7e3cad333f572fd023
Last active August 29, 2015 14:08
NodeでGitのグラフをゴリゴリ作る
var childProcess = require('child_process');
var nedb = require('nedb');
db = {};
db.commits = new nedb('db/commits.db');
db.commits.loadDatabase();
var update = function(lines, db, cb, latestId) {
var head = lines.shift();
var splitted = head.split(',,');
@jinjor
jinjor / gist:a3a2876f0a01a4ce3b57
Created October 30, 2014 17:15
GUI言語のスペック案
todos = [{name: 'foo'}, {name: 'bar'}];
main = <ul>{{map(todos, todo => <li>{{ todo.name }}</li>)}}</ul>;
@jinjor
jinjor / flyweight.js
Created February 1, 2015 04:50
Flyweight
var Flyweight = function() {
this._all = null;
this._indexed = null;
};
Flyweight.prototype._fetch = function() {
console.log('fetch');
return Promise.resolve([{
_id: 1
}]);