Skip to content

Instantly share code, notes, and snippets.

@shadowimmage
Last active December 5, 2017 01:14
Show Gist options
  • Save shadowimmage/26bae541b92766b211fec783afbb1195 to your computer and use it in GitHub Desktop.
Save shadowimmage/26bae541b92766b211fec783afbb1195 to your computer and use it in GitHub Desktop.
(partial) solution to day 2 of advent of code
""" Solution code for day 2 of the Advent of Code 2017 from http://adventofcode.com/2017
Run in python console
"""
import timeit #for tracking code runtime
puzzle_input = \
"""798 1976 1866 1862 559 1797 1129 747 85 1108 104 2000 248 131 87 95
201 419 336 65 208 57 74 433 68 360 390 412 355 209 330 135
967 84 492 1425 1502 1324 1268 1113 1259 81 310 1360 773 69 68 290
169 264 107 298 38 149 56 126 276 45 305 403 89 179 394 172
3069 387 2914 2748 1294 1143 3099 152 2867 3082 113 145 2827 2545 134 469
3885 1098 2638 5806 4655 4787 186 4024 2286 5585 5590 215 5336 2738 218 266
661 789 393 159 172 355 820 891 196 831 345 784 65 971 396 234
4095 191 4333 161 3184 193 4830 4153 2070 3759 1207 3222 185 176 2914 4152
131 298 279 304 118 135 300 74 269 96 366 341 139 159 17 149
1155 5131 373 136 103 5168 3424 5126 122 5046 4315 126 236 4668 4595 4959
664 635 588 673 354 656 70 86 211 139 95 40 84 413 618 31
2163 127 957 2500 2370 2344 2224 1432 125 1984 2392 379 2292 98 456 154
271 4026 2960 6444 2896 228 819 676 6612 6987 265 2231 2565 6603 207 6236
91 683 1736 1998 1960 1727 84 1992 1072 1588 1768 74 58 1956 1627 893
3591 1843 3448 1775 3564 2632 1002 3065 77 3579 78 99 1668 98 2963 3553
2155 225 2856 3061 105 204 1269 171 2505 2852 977 1377 181 1856 2952 2262"""
num_matrix = []
# parse input into a 2D array of integers
for line in puzzle_input.splitlines():
num_matrix.append(list(map(lambda x: int(x), line.split(' '))))
def part_two(num_matrix):
start_time = timeit.default_timer()
total = 0
for line in num_matrix:
line = sorted(line, reverse=True)
i = 0
found = False
while i < len(line) and found == False:
j = i + 1
while j < len(line) and found == False:
if line[i] % line[j] == 0:
found = True
total += line[i] // line[j]
j += 1
i += 1
print("runtime: " + str(timeit.default_timer() - start_time))
return total
print("Part 2 answer: " + str(part_two(num_matrix)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment