public void ProblemOne() { var used = 0; for (int i = 0; i < 128; i++) { var bin = HexToBin(KnotHasher.Calculate(Input + "-" + i)); used += bin.Count(i => i == '1'); } Console.WriteLine(used); }
public void ProblemTwo() { var memory = new int[128, 128];//row, col var binStrings = new List <string>(); for (var i = 0; i < 128; i++) { var bin = HexToBin(KnotHasher.Calculate(Input + "-" + i)); for (var j = 0; j < 128; j++) { memory[i, j] = bin[j] == '1' ? -1 : 0;//Mark used bits as -1 instead of 1. } } int region = 1; for (var y = 0; y < 128; y++) { for (var x = 0; x < 128; x++) { if (memory[y, x] == -1) { CreateRegion(region, x, y, memory); region++; } } } //var sb = new StringBuilder(); //for (var y = 0; y < 128; y++) //{ // for (var x = 0; x < 128; x++) // { // sb.Append(memory[y, x].ToString().PadLeft(4, ' ')); // sb.Append(' '); // } // sb.Append("\n"); //} //var test = sb.ToString(); Console.WriteLine(region - 1); }
public void ProblemTwo() { var result = KnotHasher.Calculate(Input); Console.WriteLine(result); }