day 4,5,6
This commit is contained in:
1
day06/input.txt
Normal file
1
day06/input.txt
Normal file
@ -0,0 +1 @@
|
||||
11 11 13 7 0 15 5 5 4 4 1 1 7 1 15 11
|
29
day06/part1.js
Normal file
29
day06/part1.js
Normal file
@ -0,0 +1,29 @@
|
||||
function redistribute(arr){
|
||||
var max = Math.max.apply(null, arr);
|
||||
var maxPos = arr.indexOf(max);
|
||||
var toAdd = Math.floor(max / (arr.length-1));
|
||||
var left = max % (arr.length-1);
|
||||
if(toAdd == 0){
|
||||
left = 0;
|
||||
for(var i = 1; i <= max; i++){
|
||||
arr[(i + maxPos)%(arr.length)] += 1;
|
||||
}
|
||||
arr[maxPos] = 0;
|
||||
}
|
||||
else{
|
||||
arr = arr.map((a)=>(a+toAdd));
|
||||
arr[maxPos] = left;
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
||||
var states = [];
|
||||
var state = require("fs").readFileSync("input.txt").toString().split("\t").map((a)=>(parseInt(a)));
|
||||
var i = 0;
|
||||
while(states.indexOf(state.join(",")) == -1){
|
||||
console.log(state, i);
|
||||
states.push(state.join(","));
|
||||
i++;
|
||||
state = redistribute(state);
|
||||
}
|
||||
console.log(state,i);
|
29
day06/part2.js
Normal file
29
day06/part2.js
Normal file
@ -0,0 +1,29 @@
|
||||
function redistribute(arr){
|
||||
var max = Math.max.apply(null, arr);
|
||||
var maxPos = arr.indexOf(max);
|
||||
var toAdd = Math.floor(max / (arr.length-1));
|
||||
var left = max % (arr.length-1);
|
||||
if(toAdd == 0){
|
||||
left = 0;
|
||||
for(var i = 1; i <= max; i++){
|
||||
arr[(i + maxPos)%(arr.length)] += 1;
|
||||
}
|
||||
arr[maxPos] = 0;
|
||||
}
|
||||
else{
|
||||
arr = arr.map((a)=>(a+toAdd));
|
||||
arr[maxPos] = left;
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
||||
var states = [];
|
||||
var state = require("fs").readFileSync("input.txt").toString().split("\t").map((a)=>(parseInt(a)));
|
||||
var i = 0;
|
||||
while(states.indexOf(state.join(",")) == -1){
|
||||
console.log(state, i);
|
||||
states.push(state.join(","));
|
||||
i++;
|
||||
state = redistribute(state);
|
||||
}
|
||||
console.log(i - states.indexOf(state.join(",")));
|
Reference in New Issue
Block a user