もうひとつ、15分でコーディング
またまた間に合わなかったけど。。。20分位かな。
スマートに書くとか綺麗に書くとかまだ考えられない!
とりあえず動くものという段階です。
元ネタJAVA5.0でGO!! | プログラミングに自信があるやつこい!!
function whoCanSee(usr, usrData, findData)
{
var result = new Array();
for(var i = 0; i < usrData.length; i++) // ユーザ単位のループ
{
var tmpResult = new Array();
var usrDataArray = usrData[i].split(" "); // ユーザデータを分割
for(var j = 0; j < findData.length; j++)
{
for(var k = 0; k < usrDataArray.length; k++)
{
if(findData[j] == usrDataArray[k])
{
tmpResult.push(true);
break;
}
}
}
if(tmpResult.length == findData.length)
{
result.push(usr[i]);
}
}
return result.sort();
}
10分間コーディング
JavaScriptの勉強になったかな?
10分どころでは終わらなかったのですが、、、
元ネタ
10分でコーディング | プログラミングに自信があるやつこい!!
function deal(num, cards)
{
var max = Math.floor(cards.length / num);
var testArray = new Array();
for(var i = 0; i < num ; i++) // 人数分ループ
{
var result = "";
for(var j = 0; j < max; j++) // 一人分のカード枚数分ループ
{
var cardnum = i+(j*num); // 自分の初期位置(自分のカードのx枚目)
var tmpcardnum = cards.charAt(cardnum);
if(tmpcardnum)
{
result += cards.charAt(cardnum);
}
else
{
break;
}
}
testArray.push("\"" + result + "\"");
}
return testArray;
}
寝る前にもうひとつ
20分くらいかかったかな・・・
クラス化を試してみた。
こんな感じであってるのかな。
元ネタtopcoderの道1 | プログラミングに自信があるやつこい!!
function CCipher()
{
this.alphabet = ["A","B","C","D","E","F"
,"G","H","I","J","K","L"
,"L","M","N","O","P","Q"
,"R","S","T","U","V","W"
,"X","Y","Z"
];
}
CCipher.prototype.decode = function(str, num){
var result = "";
for(var i =0; i < str.length; i++)
{
var index = this.getAlphabetIndex(str.charAt(i));
result += this.alphabet[this.getShiftIndex(index, num)];
}
return result;
};
CCipher.prototype.getAlphabetIndex = function(char)
{
for(var i = 0; i < this.alphabet.length; i++)
{
if(char == this.alphabet[i])
{
return i;
}
}
};
CCipher.prototype.getShiftIndex = function(index, num)
{
var tmp = index - num;
if(tmp < 0)
{
return this.alphabet.length - Math.abs(tmp);
}
else
{
return tmp;
}
};