Skip to content

Commit 90d2558

Browse files
committed
Day 10 2022
1 parent 848bd15 commit 90d2558

File tree

4 files changed

+346
-2
lines changed

4 files changed

+346
-2
lines changed

src/main/java/com/sbaars/adventofcode/year22/days/Day10.java

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
import com.sbaars.adventofcode.common.Day;
44
import com.sbaars.adventofcode.year22.Day2022;
55

6+
import java.util.ArrayList;
7+
import java.util.List;
8+
69
public class Day10 extends Day2022 {
710
public Day10() {
811
super(10);
@@ -20,11 +23,57 @@ public static void main(String[] args) {
2023

2124
@Override
2225
public Object part1() {
23-
return "";
26+
long cycle = 1;
27+
long x = 1;
28+
List<Long> output = new ArrayList<>();
29+
for(String op : dayStrings()) {
30+
if(op.equals("noop")) {
31+
cycle++;
32+
} else if(op.startsWith("addx")) {
33+
long add = Long.parseLong(op.substring(5));
34+
cycle++;
35+
if((cycle+20) % 40 == 0) {
36+
output.add(cycle*x);
37+
// System.out.println(cycle+", "+x);
38+
}
39+
cycle++;
40+
x+=add;
41+
}
42+
if((cycle+20) % 40 == 0) {
43+
output.add(cycle*x);
44+
// System.out.p rintln(cycle+", "+x);
45+
}
46+
if(cycle>220) break;
47+
}
48+
// System.out.println(cycle+", "+x+", "+ Arrays.toString(output.toArray()));
49+
return output.stream().mapToLong(e -> e).sum();
2450
}
2551

2652
@Override
2753
public Object part2() {
28-
return "";
54+
long cycle = 1;
55+
long x = 1;
56+
// List<Long> output = new ArrayList<>();
57+
String pixels = "";
58+
for(String op : dayStrings()) {
59+
if((cycle-1) % 40 == 0) {
60+
pixels+="\n";
61+
}
62+
pixels += List.of(x-1, x, x+1).contains((cycle-1)%40) ? "#" : ".";
63+
if(op.equals("noop")) {
64+
cycle++;
65+
} else if(op.startsWith("addx")) {
66+
long add = Long.parseLong(op.substring(5));
67+
cycle++;
68+
if((cycle-1) % 40 == 0) {
69+
pixels+="\n";
70+
}
71+
pixels += List.of(x-1, x, x+1).contains((cycle-1)%40) ? "#" : ".";
72+
cycle++;
73+
x+=add;
74+
}
75+
}
76+
// System.out.println(cycle+", "+x+", "+ Arrays.toString(output.toArray()));
77+
return pixels;
2978
}
3079
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
noop
2+
addx 3
3+
addx -5
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
addx 15
2+
addx -11
3+
addx 6
4+
addx -3
5+
addx 5
6+
addx -1
7+
addx -8
8+
addx 13
9+
addx 4
10+
noop
11+
addx -1
12+
addx 5
13+
addx -1
14+
addx 5
15+
addx -1
16+
addx 5
17+
addx -1
18+
addx 5
19+
addx -1
20+
addx -35
21+
addx 1
22+
addx 24
23+
addx -19
24+
addx 1
25+
addx 16
26+
addx -11
27+
noop
28+
noop
29+
addx 21
30+
addx -15
31+
noop
32+
noop
33+
addx -3
34+
addx 9
35+
addx 1
36+
addx -3
37+
addx 8
38+
addx 1
39+
addx 5
40+
noop
41+
noop
42+
noop
43+
noop
44+
noop
45+
addx -36
46+
noop
47+
addx 1
48+
addx 7
49+
noop
50+
noop
51+
noop
52+
addx 2
53+
addx 6
54+
noop
55+
noop
56+
noop
57+
noop
58+
noop
59+
addx 1
60+
noop
61+
noop
62+
addx 7
63+
addx 1
64+
noop
65+
addx -13
66+
addx 13
67+
addx 7
68+
noop
69+
addx 1
70+
addx -33
71+
noop
72+
noop
73+
noop
74+
addx 2
75+
noop
76+
noop
77+
noop
78+
addx 8
79+
noop
80+
addx -1
81+
addx 2
82+
addx 1
83+
noop
84+
addx 17
85+
addx -9
86+
addx 1
87+
addx 1
88+
addx -3
89+
addx 11
90+
noop
91+
noop
92+
addx 1
93+
noop
94+
addx 1
95+
noop
96+
noop
97+
addx -13
98+
addx -19
99+
addx 1
100+
addx 3
101+
addx 26
102+
addx -30
103+
addx 12
104+
addx -1
105+
addx 3
106+
addx 1
107+
noop
108+
noop
109+
noop
110+
addx -9
111+
addx 18
112+
addx 1
113+
addx 2
114+
noop
115+
noop
116+
addx 9
117+
noop
118+
noop
119+
noop
120+
addx -1
121+
addx 2
122+
addx -37
123+
addx 1
124+
addx 3
125+
noop
126+
addx 15
127+
addx -21
128+
addx 22
129+
addx -6
130+
addx 1
131+
noop
132+
addx 2
133+
addx 1
134+
noop
135+
addx -10
136+
noop
137+
noop
138+
addx 20
139+
addx 1
140+
addx 2
141+
addx 2
142+
addx -6
143+
addx -11
144+
noop
145+
noop
146+
noop

src/main/resources/2022/day10.txt

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
noop
2+
noop
3+
addx 15
4+
addx -10
5+
noop
6+
noop
7+
addx 3
8+
noop
9+
noop
10+
addx 7
11+
addx 1
12+
addx 4
13+
addx -1
14+
addx 1
15+
addx 5
16+
addx 1
17+
noop
18+
noop
19+
addx 5
20+
addx -1
21+
noop
22+
addx 3
23+
noop
24+
addx 3
25+
addx -38
26+
noop
27+
addx 3
28+
addx 2
29+
addx 5
30+
addx 2
31+
addx 26
32+
addx -21
33+
addx -2
34+
addx 5
35+
addx 2
36+
addx -14
37+
addx 15
38+
noop
39+
addx 7
40+
noop
41+
addx 2
42+
addx -22
43+
addx 23
44+
addx 2
45+
addx 5
46+
addx -40
47+
noop
48+
noop
49+
addx 3
50+
addx 2
51+
noop
52+
addx 24
53+
addx -19
54+
noop
55+
noop
56+
noop
57+
addx 5
58+
addx 5
59+
addx 2
60+
noop
61+
noop
62+
noop
63+
noop
64+
addx 7
65+
noop
66+
addx 3
67+
noop
68+
addx 3
69+
addx -2
70+
addx 2
71+
addx 5
72+
addx -38
73+
noop
74+
noop
75+
noop
76+
addx 5
77+
addx 2
78+
addx -1
79+
addx 2
80+
addx 30
81+
addx -23
82+
noop
83+
noop
84+
noop
85+
noop
86+
addx 3
87+
addx 5
88+
addx -11
89+
addx 12
90+
noop
91+
addx 6
92+
addx 1
93+
noop
94+
addx 4
95+
addx 3
96+
noop
97+
addx -40
98+
addx 4
99+
addx 28
100+
addx -27
101+
addx 5
102+
addx 2
103+
addx 5
104+
noop
105+
noop
106+
addx -2
107+
addx 2
108+
addx 5
109+
addx 3
110+
noop
111+
addx 2
112+
addx -25
113+
addx 30
114+
noop
115+
addx 3
116+
addx -2
117+
addx 2
118+
addx 5
119+
addx -39
120+
addx 29
121+
addx -27
122+
addx 5
123+
noop
124+
noop
125+
noop
126+
addx 4
127+
noop
128+
addx 1
129+
addx 2
130+
addx 5
131+
addx 2
132+
noop
133+
noop
134+
noop
135+
noop
136+
addx 5
137+
addx 1
138+
noop
139+
addx 2
140+
addx 5
141+
addx -32
142+
addx 34
143+
noop
144+
noop
145+
noop
146+
noop

0 commit comments

Comments
 (0)