もうひとつ、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;
	}
};