@@ -3,18 +3,20 @@ import { join } from 'path'
3
3
4
4
const data = readFileSync ( join ( __dirname , 'input.txt' ) , { encoding : 'utf-8' , flag : 'r' } )
5
5
6
- function part1 ( ) {
6
+ function getDataArray ( ) {
7
7
const diskdata = data . match ( / .{ 1 , 2 } / g) ?. map ( ( set , i ) => ( {
8
8
diskId : i ,
9
9
size : Number ( set [ 0 ] ) || 0 ,
10
10
free : Number ( set [ 1 ] ) || 0 ,
11
11
} ) )
12
12
13
- if ( ! diskdata ) return
13
+ return diskdata ?. flatMap ( ( disk ) => [ ...Array ( disk . size ) . fill ( disk . diskId ) , ...Array ( disk . free ) . fill ( null ) ] ) || [ ]
14
+ }
14
15
15
- const dataArray = diskdata . flatMap ( ( disk ) => [ ...Array ( disk . size ) . fill ( disk . diskId ) , ...Array ( disk . free ) . fill ( null ) ] )
16
+ function part1 ( ) {
17
+ const dataArray = getDataArray ( )
16
18
17
- console . log ( 'dataArray before sort:' , dataArray )
19
+ console . log ( dataArray )
18
20
19
21
for ( let i = 0 ; i < dataArray . length ; i ++ ) {
20
22
if ( dataArray [ i ] === null ) {
@@ -28,11 +30,7 @@ function part1() {
28
30
}
29
31
}
30
32
31
- console . log ( 'dataArray after sort:' , dataArray )
32
-
33
- const finalSum = dataArray . reduce ( ( acc , val , i ) => ( val === null ? acc : acc + i * Number ( val ) ) , 0 )
34
-
35
- return finalSum
33
+ return dataArray . reduce ( ( acc , val , i ) => ( val === null ? acc : acc + i * Number ( val ) ) , 0 )
36
34
}
37
35
38
36
function part2 ( ) { }
0 commit comments