Skip to content

Commit 9a39b1b

Browse files
committed
Added day20 part2
1 parent 8ea8463 commit 9a39b1b

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

day20/index.js

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,10 @@ getRows()
3333
console.log(distance.indexOf(Math.min(...distance)));
3434
};
3535

36-
console.log(input[0])
3736
const part2 = () => {
3837
let state = [...input];
39-
const seen = {};
40-
for (let i = 0; i < 50; i += 1) {
38+
for (let tick = 0; tick < 1000; tick += 1) {
39+
const seen = {};
4140
state = state.map(([p, v, a, index]) => {
4241
v = sumArrays(v, a);
4342
p = sumArrays(p, v);
@@ -48,22 +47,18 @@ getRows()
4847
}
4948
return [p, v, a, index];
5049
});
51-
const collisions = Object.entries(seen).filter(([, entries]) => entries.length > 1);
52-
if (collisions.length) {
53-
const [position, entries] = collisions[0] || [];
5450

55-
console.log(position, entries);
56-
console.log(state[entries[0]], state[entries[1]]);
57-
state = state.splice(entries[0], 1);
58-
}
59-
/* Object.values(seen).forEach(pos => {
60-
console.log(state.length);
61-
state = state.splice(pos, 1);
62-
});*/
51+
Object.values(seen)
52+
.filter(indices => indices.length > 1)
53+
.forEach((indices) => {
54+
indices.forEach((index) => {
55+
const duplicate = state.find(([, , , i]) => i === index);
56+
state.splice(state.indexOf(duplicate), 1);
57+
});
58+
});
6359
}
64-
/*console.log(Object.values(seen).filter(id => id.length > 1));
65-
console.log(state[71]);
66-
console.log(state[72]);*/
60+
console.log(state.length);
61+
6762
};
6863

6964
part1();

0 commit comments

Comments
 (0)