days 11-16
This commit is contained in:
1
day16/input.txt
Normal file
1
day16/input.txt
Normal file
File diff suppressed because one or more lines are too long
11
day16/part1.js
Normal file
11
day16/part1.js
Normal file
@ -0,0 +1,11 @@
|
||||
var items = "abcdefghijklmnop".split("");
|
||||
s = (i) => {items = items.splice(-i).concat(items);}
|
||||
x = (a,b) => {[items[a], items[b]] = [items[b], items[a]]}
|
||||
p = (a,b) => {x(items.indexOf(a), items.indexOf(b))}
|
||||
|
||||
var input = require("fs").readFileSync("input.txt").toString().replace("\n", "");
|
||||
var input = "," + input + ",";
|
||||
var expr = input.replace(/,/g, ");").replace(/;([sxp])/g, ";$1(").replace(/([a-z])\/([a-z])/g, "'$1'/'$2'").replace(/\//g, ",");
|
||||
expr = expr.substring(2);
|
||||
eval(expr);
|
||||
console.log(items.join(""));
|
19
day16/part2.js
Normal file
19
day16/part2.js
Normal file
@ -0,0 +1,19 @@
|
||||
var items = "abcdefghijklmnop".split("");
|
||||
s = (i) => {items = items.splice(-i).concat(items);}
|
||||
x = (a,b) => {[items[a], items[b]] = [items[b], items[a]]}
|
||||
p = (a,b) => {x(items.indexOf(a), items.indexOf(b))}
|
||||
|
||||
var input = require("fs").readFileSync("input.txt").toString().replace("\n", "");
|
||||
var input = "," + input + ",";
|
||||
var expr = input.replace(/,/g, ");").replace(/;([sxp])/g, ";$1(").replace(/([a-z])\/([a-z])/g, "'$1'/'$2'").replace(/\//g, ",");
|
||||
expr = expr.substring(2);
|
||||
var state = "";
|
||||
var states = [];
|
||||
while(states.indexOf(state) == -1){
|
||||
states.push(state);
|
||||
eval(expr);
|
||||
state = items.join("");
|
||||
}
|
||||
states = states.filter((a)=>(a));
|
||||
var num = 1000000000;
|
||||
console.log(states[(num-1)%states.length]);
|
Reference in New Issue
Block a user