This commit is contained in:
Tim Stallard 2017-12-10 12:18:49 +00:00
parent 3b686f4759
commit 492bdb29fd
Signed by: Tim
GPG Key ID: AAE46381AF6A3FE8
2 changed files with 45 additions and 0 deletions

18
day10/part1.js Normal file
View File

@ -0,0 +1,18 @@
var list = [];
for(var i = 0; i < 256; i++){
list.push(i);
}
var pos = 0;
var lengths = [97,167,54,178,2,11,209,174,119,248,254,0,255,1,64,190];
var skip = 0;
for(var length of lengths){
for(var i = 0; i < (length/2); i++){
var a = list[(pos+i)%list.length];
var b = list[(pos+length-1-i)%list.length];
list[(pos+i)%list.length] = b;
list[(pos+length-1-i)%list.length] = a;
}
pos += length + skip;
skip += 1;
}
console.log(list[0] * list[1]);

27
day10/part2.js Normal file
View File

@ -0,0 +1,27 @@
function hash(input){
var list = [];
for(var i = 0; i < 256; i++){
list.push(i);
}
var pos = 0;
var lengths = input.split("").filter((a)=>(a)).map((a)=>(a.charCodeAt(0))).concat([17, 31, 73, 47, 23]);
var skip = 0;
for(var x = 0; x < 64; x++){
for(var length of lengths){
for(var i = 0; i < (length/2); i++){
var a = list[(pos+i)%list.length];
var b = list[(pos+length-1-i)%list.length];
list[(pos+i)%list.length] = b;
list[(pos+length-1-i)%list.length] = a;
}
pos += length + skip;
pos = pos % list.length;
skip += 1;
}
}
var hash = list.reduce((arr, a, i)=>{arr[Math.floor(i/16)] = arr[Math.floor(i/16)] ^ a; return arr;}, []);
return hash.map((a)=>(a.toString(16))).map((a)=>((a.length == 1) ? ("0" + a) : (a))).join("");
}
console.log(hash("97,167,54,178,2,11,209,174,119,248,254,0,255,1,64,190"));