Prob B
by ipark
HTML
<h2>
Prob B.
</h2>
<ul> 입력
<li> 2<br>. .<br>* * </li>
<li> 4<br>. . **<br>. * . .<br>* . . .<br>. . . . </li>
</ul>
<ul> 생성 결과
<li> Expected: <span id="extected1">1</span>, Actual: <span id="actual1"></span> </li>
<li> Expected: <span id="extected1">7</span>, Actual: <span id="actual2"></span> </li>
</ul>
<ul> 결과
<li> Case1: <span id="result1"></span> </li>
<li> Case2: <span id="result2"></span> </li>
</ul>
JavaScript
//-------------------------------------------------
// Utility Fn
//
function same(l, r) {
return (l === r) && (l === '.');
}
//-------------------------------------------------
// Business Logic
//
function process(seats) {
var n = seats.length,
len = n-1,
result = 0;
for(var i=0; i<n; i++) {
for(var j=0; j<len; j++) {
if( solveSubProblem(seats[i], j) ) {
result += 1;
}
}
}
return result;
}
function solveSubProblem(row, n) {
return same( row[n], row[n+1] );
}
//-------------------------------------------------
// Main Fn
//
var inputs = [ ['..' , '**'], ['..**', '.*..', '*...', '....'] ];
var expected = [ 1, 7 ];
(function init(inputs) {
var result = [];
for (var i = 0, len = inputs.length; i < len; i++) {
result.push( process(inputs[i]) );
$('#actual' + (i + 1)).text(result[i]);
$('#result' + (i + 1)).text(expected[i] === result[i]);
}
})(inputs);