Skip to content

Instantly share code, notes, and snippets.

@mmloveaa
Created April 23, 2016 21:05
Show Gist options
  • Save mmloveaa/23189731dc59806504f54fe3cc5d6e17 to your computer and use it in GitHub Desktop.
Save mmloveaa/23189731dc59806504f54fe3cc5d6e17 to your computer and use it in GitHub Desktop.
4-23 Valid Flag solution
if(validRow(arrayOfFlagObjects[0].flag)===true && validNeighbors(arrayOfFlagObjects[0].flag)===true){
console.log("YES");
}else {
console.log("NO");
}
// Solution 1
process.stdin.resume();
process.stdin.setEncoding("ascii");
var input = "";
process.stdin.on("data", function (chunk) {
input += chunk;
});
process.stdin.on("end", function () {
// now we can read/parse input
// console.log('input ', input)
var data = input.split('\n')
// console.log('data ', data)
var numTestCases = data.shift()
var arrayOfFlagObjects = []
// console.log('numTestCases ' + numTestCases)
// console.log('data ', data)
for (var i=0; i<numTestCases; i++) {
var flagObject = {
rows: 0,
columns: 0,
flag: []
}
flagObject.rows = data[0][0];
flagObject.columns = data[0][2];
data.shift()
for (var j=0; j<flagObject.rows; j++) {
flagObject.flag.push(data[0])
data.shift()
}
arrayOfFlagObjects.push(flagObject)
}
// console.log('array of flagobjects ', arrayOfFlagObjects)
for (var x=0; x<arrayOfFlagObjects.length; x++) {
var validRows = true;
for (var i=0; i<arrayOfFlagObjects[x].rows; i++) {
// console.log(validRow(arrayOfFlagObjects[x].flag[i]))
if (!validRow(arrayOfFlagObjects[x].flag[i])) {
validRows = false
}
}
var validNeighbors = true;
if (!validNeighbor(arrayOfFlagObjects[x].flag)) validNeighbors = false
if (validRows && validNeighbors) {
console.log('YES')
}
else {
console.log('NO')
}
}
// helper functions
function validRow(row) {
for (var i=1; i<row.length; i++) {
if (row[i] !== row[i-1]) return false
}
return true;
}
function validNeighbor(flag) {
for (var i=1; i<flag.length; i++) {
if (flag[i][0] === flag[i-1][0]) return false
}
return true;
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment