@@ -12,8 +12,26 @@ public static void main(String[] args) {
12
12
for (int i = 0 ; i < data .length ; i ++) {
13
13
data [i ] = Integer .parseInt (input [i ]);
14
14
}
15
- data [1 ] = 12 ;
16
- data [2 ] = 2 ;
15
+ System .out .println ("Part 1)" );
16
+ int [] part1 = Arrays .copyOf (data , data .length );
17
+ //part 1 noun = 2 verb = 12
18
+ System .out .println (calculate (part1 , 12 , 2 )[0 ]);
19
+ for (int verb = 0 ; verb < 100 ; verb ++) {
20
+ for (int noun = 0 ; noun < 100 ; noun ++) {
21
+ int [] part2 = Arrays .copyOf (data , data .length );
22
+ int [] temp = calculate (part2 , noun , verb );
23
+ if (temp [0 ] == 19690720 ) {
24
+ System .out .println ("Part 2)" );
25
+ System .out .printf ("FOUND NOUN = %d VERB = %d\n " , noun , verb );
26
+ System .out .printf ("100 * %d + %d = %d" , noun , verb , 100 * noun + verb );
27
+ }
28
+ }
29
+ }
30
+ }
31
+
32
+ public static int [] calculate (int [] data , int noun , int verb ) {
33
+ data [1 ] = noun ;
34
+ data [2 ] = verb ;
17
35
int i = 0 ;
18
36
while (i < data .length ) {
19
37
int opcode = data [i ];
@@ -34,11 +52,9 @@ public static void main(String[] args) {
34
52
data [positionToStore ] = a * b ;
35
53
i += 4 ;
36
54
} else if (opcode == 99 ) {
37
- System .out .println ("Opcode 99 reached - terminating" );
38
55
break ;
39
56
}
40
57
}
41
- System .out .println (Arrays .toString (data ).replaceAll (" " , "" ));
42
- System .out .println ("Number at position 0 is " + data [0 ]);
58
+ return data ;
43
59
}
44
60
}
0 commit comments