@@ -33,11 +33,10 @@ getRows()
33
33
console . log ( distance . indexOf ( Math . min ( ...distance ) ) ) ;
34
34
} ;
35
35
36
- console . log ( input [ 0 ] )
37
36
const part2 = ( ) => {
38
37
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 = { } ;
41
40
state = state . map ( ( [ p , v , a , index ] ) => {
42
41
v = sumArrays ( v , a ) ;
43
42
p = sumArrays ( p , v ) ;
@@ -48,22 +47,18 @@ getRows()
48
47
}
49
48
return [ p , v , a , index ] ;
50
49
} ) ;
51
- const collisions = Object . entries ( seen ) . filter ( ( [ , entries ] ) => entries . length > 1 ) ;
52
- if ( collisions . length ) {
53
- const [ position , entries ] = collisions [ 0 ] || [ ] ;
54
50
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
+ } ) ;
63
59
}
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
+
67
62
} ;
68
63
69
64
part1 ( ) ;
0 commit comments