1
- import fs from 'fs' ;
1
+ import fs from "fs" ;
2
2
3
- const input = fs . readFileSync ( './input.txt' ) . toString ( ) . split ( ',' ) . map ( value => + value ) ;
3
+ const input = fs
4
+ . readFileSync ( "./input.txt" , "utf8" )
5
+ . split ( "," )
6
+ . map ( value => + value ) ;
4
7
5
8
const program = ( input , noun , verb ) => {
6
- const memory = [ ...input ] ;
7
- memory [ 1 ] = noun ;
8
- memory [ 2 ] = verb ;
9
+ const memory = [ ...input ] ;
10
+ memory [ 1 ] = noun ;
11
+ memory [ 2 ] = verb ;
9
12
10
- const processOpcode = ( input , position ) => {
11
- const output = [ ...input ] ;
12
- const opcode = output [ position ] ;
13
- const first = output [ output [ position + 1 ] ] ;
14
- const second = output [ output [ position + 2 ] ] ;
15
- const placementPosition = output [ position + 3 ] ;
16
- switch ( opcode ) {
17
- case 1 : {
18
- const result = first + second ;
19
- output [ placementPosition ] = result ;
20
- return processOpcode ( output , position + 4 ) ;
21
- }
22
- case 2 : {
23
- const result = first * second ;
24
- output [ placementPosition ] = result ;
25
- return processOpcode ( output , position + 4 ) ;
26
- }
27
- case 99 :
28
- default :
29
- return input ;
30
- }
13
+ const processOpcode = ( input , position ) => {
14
+ const output = [ ...input ] ;
15
+ const opcode = output [ position ] ;
16
+ const first = output [ output [ position + 1 ] ] ;
17
+ const second = output [ output [ position + 2 ] ] ;
18
+ const placementPosition = output [ position + 3 ] ;
19
+ switch ( opcode ) {
20
+ case 1 : {
21
+ const result = first + second ;
22
+ output [ placementPosition ] = result ;
23
+ return processOpcode ( output , position + 4 ) ;
24
+ }
25
+ case 2 : {
26
+ const result = first * second ;
27
+ output [ placementPosition ] = result ;
28
+ return processOpcode ( output , position + 4 ) ;
29
+ }
30
+ case 99 :
31
+ default :
32
+ return input ;
31
33
}
34
+ } ;
32
35
33
- const result = processOpcode ( memory , 0 ) ;
34
- return result [ 0 ] ;
35
- }
36
+ const result = processOpcode ( memory , 0 ) ;
37
+ return result [ 0 ] ;
38
+ } ;
36
39
37
- for ( let noun = 0 ; noun < 100 ; noun ++ ) {
38
- for ( let verb = 0 ; verb < 100 ; verb ++ ) {
39
- const output = program ( input , noun , verb ) ;
40
- if ( output === 19690720 ) {
41
- console . log ( 100 * noun + verb ) ;
42
- }
40
+ for ( let noun = 0 ; noun < 100 ; noun ++ ) {
41
+ for ( let verb = 0 ; verb < 100 ; verb ++ ) {
42
+ const output = program ( input , noun , verb ) ;
43
+ if ( output === 19690720 ) {
44
+ console . log ( 100 * noun + verb ) ;
43
45
}
44
- }
46
+ }
47
+ }
0 commit comments