diff options
Diffstat (limited to '2020/day3')
-rw-r--r-- | 2020/day3/README.md | 11 | ||||
-rw-r--r-- | 2020/day3/input | 323 | ||||
-rw-r--r-- | 2020/day3/toboggan.pl | 30 | ||||
-rw-r--r-- | 2020/day3/toboggans.pl | 40 |
4 files changed, 404 insertions, 0 deletions
diff --git a/2020/day3/README.md b/2020/day3/README.md new file mode 100644 index 0000000..75737af --- /dev/null +++ b/2020/day3/README.md | |||
@@ -0,0 +1,11 @@ | |||
1 | # day 3 | ||
2 | |||
3 | ## first part | ||
4 | |||
5 | 32 places per row, right 3 and down 1 is | ||
6 | |||
7 | ``` | ||
8 | idx = (idx + 3) % 32 | ||
9 | ``` | ||
10 | |||
11 | per line but this will _probably_ change for the part 2. | ||
diff --git a/2020/day3/input b/2020/day3/input new file mode 100644 index 0000000..831458f --- /dev/null +++ b/2020/day3/input | |||
@@ -0,0 +1,323 @@ | |||
1 | .....#.........#...#..##....#.. | ||
2 | .#........#...#........#....... | ||
3 | ......#......#..#...#....#.#..# | ||
4 | ...#.#####.#.......##.#........ | ||
5 | ...........#......#..#.....#... | ||
6 | #.#..#...#.#...#.##.....#.....# | ||
7 | ....#..#....#...#.#...#.##..... | ||
8 | ##...#..........##..######..... | ||
9 | .....#...#......#.............# | ||
10 | ........##....#...##..#....#... | ||
11 | ...#...#.........#.#..........# | ||
12 | ..#.#.....##..........#........ | ||
13 | ##.......................#..... | ||
14 | #..#...##...##.#.........##.... | ||
15 | .#....#.#####....#...#...#..... | ||
16 | #......#......###..#........#.# | ||
17 | .#....##..##.###.#.......#..... | ||
18 | .#..#.........##....#.#....#... | ||
19 | ........#..................#... | ||
20 | .......#..#..#............#.... | ||
21 | ........#...................##. | ||
22 | .#......#......#.####......#... | ||
23 | ..###.#..#..#.........#........ | ||
24 | ..#...........###..#.....#.##.. | ||
25 | ...#.##.#....#................# | ||
26 | #.....#.............#.#........ | ||
27 | .#..............#.........#.... | ||
28 | ##.................#..........# | ||
29 | .#..#....#.###....##..#..#...#. | ||
30 | ##........#......##.....#....## | ||
31 | #......#..#........#......#.#.. | ||
32 | ....#.##.#.............#...##.. | ||
33 | .#...#...#..#............##...# | ||
34 | .#..#...#..#..#....##..#.#.#... | ||
35 | #....#...##.#.#......#........# | ||
36 | #..#..#...#.#.....#..##.#...... | ||
37 | .....#..#.#..#.##.......#..###. | ||
38 | #......#......#...#............ | ||
39 | .....#......#......#..#.##..#.# | ||
40 | ......#..##..#.....#....#...... | ||
41 | ..#..#...#..#...#....###.#.#... | ||
42 | .................#..#.......... | ||
43 | ......#...##..#.....#...##..... | ||
44 | ..#...............#...#.#.....# | ||
45 | .#....#.##.##..#.........##.... | ||
46 | ...###....##...#......#......## | ||
47 | ....#...#.....#.........#..##.. | ||
48 | ..###.........#..#..#...#...... | ||
49 | ...##.....#.........#.......#.. | ||
50 | .....#.................#.#..... | ||
51 | .#.###.#..#...#..##....#....##. | ||
52 | ....#.....##.........#.#....... | ||
53 | .#.#....#..#................#.. | ||
54 | ..#.#......#......#........#... | ||
55 | #........#....#..#..#..#....#.# | ||
56 | #...........##..#....#..####... | ||
57 | .....#.......#.#...#.#....###.. | ||
58 | .......#....#.......#.......... | ||
59 | .............#.....#........... | ||
60 | #....#......#...#..##.#........ | ||
61 | ....#.......#.#.......#....###. | ||
62 | .####.#...........#.#.#...#.#.. | ||
63 | #..##....##.#......#........... | ||
64 | ...##...#.#.....#.....#........ | ||
65 | ...#.............#.....#...#... | ||
66 | ...#.....#..#.....##...###..#.# | ||
67 | ....##..#..##..#..#...#.....#.. | ||
68 | ........#...................##. | ||
69 | ....#.......#.....#.......#.... | ||
70 | ....##.........#.#............. | ||
71 | ......#..#........#.#...#...... | ||
72 | .#..#...#...........#......#..# | ||
73 | .#....#.#........#............# | ||
74 | ......#...................#...# | ||
75 | ##...#.......................#. | ||
76 | ........###.......#.......#..#. | ||
77 | ...........##.............#.... | ||
78 | ..##...#.....#....#......#....# | ||
79 | ................###...##...#.#. | ||
80 | ..#.#.....#....##...#..##...... | ||
81 | .....................#.#......# | ||
82 | .......#....##.#..#........##.. | ||
83 | .##....#......#....#.........#. | ||
84 | #............#.........#..#.#.. | ||
85 | ....#...........#..#....#....## | ||
86 | .......#..#.....##.........#... | ||
87 | .##..........#.#.#....#..#..... | ||
88 | ........#....##.##.#......#.... | ||
89 | ....##..##......##.....#.###... | ||
90 | ......##.#....##.#.#....#...... | ||
91 | ..#..#..........#.....##.....## | ||
92 | #........#.##...#.#....#....### | ||
93 | ........##............#........ | ||
94 | ##.##..##.#..#...##............ | ||
95 | ....#..#....#...........#....#. | ||
96 | ..#.......#.#.......#...#...... | ||
97 | .#..........##.....#..#...#...# | ||
98 | .................##.#...#...##. | ||
99 | ##.............#......#....#... | ||
100 | ..........#.#....#............. | ||
101 | ...##..#.#.....#.....#.#....... | ||
102 | ...##...##.#......#.#...#...... | ||
103 | ..#..#.....##..##..........##.. | ||
104 | ......##........##.......#....# | ||
105 | ....#..####..#...##........#... | ||
106 | #.......#....#.......##.......# | ||
107 | ........#..........#.........#. | ||
108 | .....#....#.........#.#.#.....# | ||
109 | ..##.....#....#....#..#......#. | ||
110 | ....#..#.##...#..#.....#......# | ||
111 | ........###.........#..###...#. | ||
112 | .....#.......#.....#.#.#....... | ||
113 | ...##.....#....##.....#.#.#...# | ||
114 | #.##....#.##.....#.#.#........# | ||
115 | .##..#.......#...#.#.......#... | ||
116 | .#..........#.............#.... | ||
117 | .#...#...#......#..##.......... | ||
118 | .......................#.#....# | ||
119 | ............###....#..##.#..#.. | ||
120 | ...#.#......##....#..#......... | ||
121 | ..#...#....#....#.#............ | ||
122 | ..#.#..###...............##.... | ||
123 | .....##...#.....#........#..#.# | ||
124 | ...........#......#..#...#.##.# | ||
125 | #...##......##...#..#...#..#... | ||
126 | ..##....#............#......#.# | ||
127 | .#.#..#...#...#.#...#...##..##. | ||
128 | ..#.#....#.......#.#.#.#.#.##.. | ||
129 | ....###.##..#...##....#........ | ||
130 | .#...............#........#.... | ||
131 | ...#..#........##...#.##....... | ||
132 | ........#..#..#......##........ | ||
133 | ##....#....#............#...... | ||
134 | #....#...#.###.#.###.......#... | ||
135 | ...#.###.##....#.........#...## | ||
136 | ..#......##.#.....#..#.......#. | ||
137 | ##.............#..#..##....#.#. | ||
138 | #...#...##........#.#.......#.. | ||
139 | ........#..#.....#.#..#..#.#... | ||
140 | #..##.........#.#.#.##...#....# | ||
141 | ............#...#....#..#....#. | ||
142 | .....#.......#......##..#...... | ||
143 | .#.....................#......# | ||
144 | ...................#....#.#.... | ||
145 | .....#....#.....##............. | ||
146 | #....##.#....##..#....##....#.. | ||
147 | ....#..........#..........#.... | ||
148 | .....#.#...............#..##... | ||
149 | ...#......###.......#..##...... | ||
150 | #.#.#....##..#......#.##.#..... | ||
151 | .#...###..#.....##.........#.#. | ||
152 | ..#...#.............#....#..... | ||
153 | #..#.............#.....#.....#. | ||
154 | .#.........#.#...#..#....#...#. | ||
155 | #....#......#....#.#..........# | ||
156 | .........................#..... | ||
157 | ...................#........... | ||
158 | #.#...#......#....#............ | ||
159 | .#..#........#...##....#....#.. | ||
160 | ..#......#..#..........##...... | ||
161 | #.#....#....##....#.........#.. | ||
162 | ...#.#.#.#..#....##..#....#..#. | ||
163 | ..#..............#.....##...... | ||
164 | ....#.........#...#.....#..#... | ||
165 | ..#..................#.#....... | ||
166 | .....##.##........#.#....#..### | ||
167 | ..#.#...#.....#..##..##.#.#.#.. | ||
168 | .....#......#............#..... | ||
169 | .#.......#....##............... | ||
170 | ...#.................#.....#... | ||
171 | ...#.#..#.#...##........#....## | ||
172 | ..........##................... | ||
173 | #........#..........#.#........ | ||
174 | ................#..##.##.#....# | ||
175 | ....##..#.#.#...#...#....#.#.#. | ||
176 | ..#.........#......##....#..... | ||
177 | .##.........#.....#.#.......... | ||
178 | ...##...###...........#......## | ||
179 | ..#........#......#.....##.#... | ||
180 | ###.....#.#.#...#.......#....#. | ||
181 | ..##...#....###..##.#.#..##.... | ||
182 | ..###...##.......#.#..#....#..# | ||
183 | ..#...............###....#..#.. | ||
184 | ...........#....#.##..#........ | ||
185 | .#...#..#.#...##..#....#...#..# | ||
186 | ..#............#......#.....#.. | ||
187 | .#...#...#.#...#.#............. | ||
188 | ...####.........#....##....#.#. | ||
189 | .....##...#........#.#......#.. | ||
190 | ...####...#.#..#.#.#.#......... | ||
191 | ........#.##.#..#.......#...... | ||
192 | ......##......#.........#.#.... | ||
193 | ..#.#...#....#.....###.....##.. | ||
194 | #.#.##..........#...##..#..#.#. | ||
195 | .....#................#.#..#..# | ||
196 | .........#........#.....#..#..# | ||
197 | ......#...........#...........# | ||
198 | ..#........#.#.........#...##.. | ||
199 | .....####.....#....##.#........ | ||
200 | ....#...#........#.......#...#. | ||
201 | ...#..#....#.....##....###..... | ||
202 | ........#..#..#.#.#............ | ||
203 | #..#......#..#....#....#.#.#..# | ||
204 | .........#...#......##......... | ||
205 | ..#....#............#..#.....#. | ||
206 | #............#.#...#......#...# | ||
207 | ..#..##...#........#.........## | ||
208 | .#...#....##...#.......#..##... | ||
209 | #..#.##......#........##...#... | ||
210 | ...#..........#...#..#..#....#. | ||
211 | ##..#........##..##...#..###.#. | ||
212 | ............##...............#. | ||
213 | #......#...#....#.........#...# | ||
214 | ................#..#.#......... | ||
215 | .....#...#...#...##.......#...# | ||
216 | ..##.###...#...#.#..##.#.#...#. | ||
217 | #...##..........#....##.#.#.#.. | ||
218 | .#.........#..........#........ | ||
219 | .......#.#...............#..... | ||
220 | ...#...#............#.......... | ||
221 | .........#..#..........#....... | ||
222 | .........#..#...#....#.##....#. | ||
223 | ..#............#......#....#.## | ||
224 | ...#...#.#........#......#..#.# | ||
225 | ........#......##...##...#..#.# | ||
226 | .......###......#............#. | ||
227 | #.....#...##.#.#...#.......#.#. | ||
228 | ..#......#..............##....# | ||
229 | ..#............##.......#.#.#.# | ||
230 | ...#.#.....#.#.#........####... | ||
231 | ...#................#.......... | ||
232 | ..#...#....#....#......#..#...# | ||
233 | .###......#..............#.#..# | ||
234 | ......#......#..........##..#.. | ||
235 | ...##.#...........#.#.....##.#. | ||
236 | .#...#......#..........#....... | ||
237 | ....#...#....#..........#.#.... | ||
238 | ..................##..#.....#.# | ||
239 | ###.................#......##.. | ||
240 | .....#.....#............#.#..#. | ||
241 | .....#........#...#....#.#..... | ||
242 | #.#...#........................ | ||
243 | .#...#.......#..#.......#...... | ||
244 | .......#.#.....###.#...#.#..... | ||
245 | #...#.#...........##...#....... | ||
246 | .#.......#.....#..#..#....#.... | ||
247 | ...#..##.....#..#..#.....#..... | ||
248 | ...#................###......#. | ||
249 | #..#...##.###..#..##.......#... | ||
250 | .#.#.#........#.#.............# | ||
251 | #.......#..#.......#.....##...# | ||
252 | .#.#.#............#..#....#.#.. | ||
253 | ...#.#.##.#......##.....#....## | ||
254 | #............###...#....#...... | ||
255 | .....#..#..#.#.........##.#.... | ||
256 | .#.##........#.#.#...#.......#. | ||
257 | ..###..#..#.#...#.##...###..... | ||
258 | #............#.............#... | ||
259 | .#.##.....#..#.......#...#...#. | ||
260 | .#...#........###...####....... | ||
261 | .#.#..##..#.....#.#..#......... | ||
262 | ....#.#.#............##..#...#. | ||
263 | ###.##......#.#.....#.....#.... | ||
264 | .........#...##.....##....#.... | ||
265 | ..#................#.........#. | ||
266 | #.......###..##..##............ | ||
267 | .....#...#.............#..#..#. | ||
268 | ..........#...................# | ||
269 | ....#....#...........#......... | ||
270 | .##.......##.##.........##..... | ||
271 | #......#.#....#....#...#.#.#... | ||
272 | ..#.##..#.###.#.##....#..#..... | ||
273 | #....##.#...#.................. | ||
274 | .......#...#...........#...#... | ||
275 | ....###.#...#..#............... | ||
276 | ##.#.#..#.#......#.#......#...# | ||
277 | .............#.....#.##....#... | ||
278 | #.............###....#...#.##.# | ||
279 | #..#.##.............#.##...#... | ||
280 | .#.#......#.........#...#...... | ||
281 | .#.........#.#.#.....##.#.#.... | ||
282 | .................#........#.... | ||
283 | ....##.#.#..#.........#........ | ||
284 | #...##......##....#.#..#......# | ||
285 | ..........##...##..#......##... | ||
286 | ..........#..#.#..##..#..#..... | ||
287 | ..#..#.....##........#...#.#... | ||
288 | #..........#.#.#..............# | ||
289 | #..........##.....#.#...##....# | ||
290 | .....#...#..#..#...##.#.......# | ||
291 | .##.#...............#.#...#.... | ||
292 | ..........#.....#......#....... | ||
293 | .....#.#......##...#.......#... | ||
294 | ...........#.#...#.....#....#.# | ||
295 | .###.#........##....#.##...#... | ||
296 | #....#.##....#.###..##.#....... | ||
297 | ##...........#..##.........#... | ||
298 | ....#.##...#...#.....#.#..#.... | ||
299 | ........#.#.#..#.#...........## | ||
300 | ..........#.##...#....#......#. | ||
301 | .##.....#.#.....##.#.......#.#. | ||
302 | .#..#....#.#.....#.##.#....#..# | ||
303 | #.......#..#..........##....#.. | ||
304 | .#........#...#..#.#...#....#.. | ||
305 | #......##...#...##..#.#.......# | ||
306 | .#......#.##.#............##.#. | ||
307 | .#....#.....##..##..........#.. | ||
308 | ..###..#..#...#...#.#.#..##.... | ||
309 | .#.#.##...#..#...........#....# | ||
310 | ....#......#.......##...#.#.#.. | ||
311 | .......#..#...##..#.........#.. | ||
312 | ....#..#.#.......##........#..# | ||
313 | ........#.#....#.##..#.......#. | ||
314 | .....#.......#.#...#.#......... | ||
315 | ........#...#....#.#....###..#. | ||
316 | ......#..#.##..##..#...#.#..... | ||
317 | .#.#.....#.....#....#...#...#.. | ||
318 | ...#..#...#..#......#..#.#..... | ||
319 | ...##...#...........#..#......# | ||
320 | ..#...#####..#.#.##....##...... | ||
321 | ...........#......#.#..#....... | ||
322 | ..#....##..#.##.......#.#.#..#. | ||
323 | ..#..#........#...#.......#.... | ||
diff --git a/2020/day3/toboggan.pl b/2020/day3/toboggan.pl new file mode 100644 index 0000000..d424a83 --- /dev/null +++ b/2020/day3/toboggan.pl | |||
@@ -0,0 +1,30 @@ | |||
1 | use strict; | ||
2 | use warnings; | ||
3 | # use Smart::Comments; | ||
4 | |||
5 | open my $fh, '<', "input" or die "no input present, $!"; | ||
6 | |||
7 | my $right_m = 3; | ||
8 | my $toboggan = 0; | ||
9 | |||
10 | my $trees = 0; | ||
11 | |||
12 | while (my $line = <$fh>) { | ||
13 | chomp $line; | ||
14 | |||
15 | ### $line | ||
16 | my $curr = substr($line, $toboggan, 1); | ||
17 | ### $curr | ||
18 | |||
19 | if ($curr eq "#") { | ||
20 | $trees++; | ||
21 | } | ||
22 | |||
23 | ### $toboggan | ||
24 | |||
25 | $toboggan = ($toboggan + $right_m) % 31; | ||
26 | |||
27 | } | ||
28 | |||
29 | print($trees); | ||
30 | |||
diff --git a/2020/day3/toboggans.pl b/2020/day3/toboggans.pl new file mode 100644 index 0000000..ebf7ae4 --- /dev/null +++ b/2020/day3/toboggans.pl | |||
@@ -0,0 +1,40 @@ | |||
1 | use strict; | ||
2 | use warnings; | ||
3 | # use Smart::Comments; | ||
4 | use DDP; | ||
5 | |||
6 | open my $fh, '<', "input" or die "no input present, $!"; | ||
7 | chomp(my @forest = <$fh>); | ||
8 | close $fh; | ||
9 | my $len = scalar @forest; | ||
10 | |||
11 | my @right_ms = qw/1 3 5 7 1/; | ||
12 | my @down_ms = qw/ 1 1 1 1 2/; | ||
13 | my $runs = $#right_ms; | ||
14 | |||
15 | my $all_trees = 1; | ||
16 | |||
17 | foreach my $run (0..$runs) { | ||
18 | |||
19 | my $toboggan = 0; | ||
20 | my $trees = 0; | ||
21 | my $down_mov = $down_ms[$run]; | ||
22 | my $right_mov = $right_ms[$run]; | ||
23 | |||
24 | for (my $line = 0; $line < $len; $line += $down_mov) { | ||
25 | my $curr = substr($forest[$line], $toboggan, 1); | ||
26 | if ($curr eq "#") { | ||
27 | $trees++; | ||
28 | } | ||
29 | $toboggan = ($toboggan + $right_mov) % 31; | ||
30 | } | ||
31 | $trees ||= 1; | ||
32 | $all_trees *= $trees; | ||
33 | ### this run is | ||
34 | ### $right_mov | ||
35 | ### $down_mov | ||
36 | ### got: $trees | ||
37 | ### so far: $all_trees | ||
38 | } | ||
39 | |||
40 | print("$all_trees"); | ||