Adopted new convention from template

This commit is contained in:
2022-09-22 09:05:37 +02:00
parent 1927e3b009
commit 6941a8cf45

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env python3 #!/usr/bin/env python
""" """
Created on 07 Jul 2021 Created on 07 Jul 2021
@@ -12,28 +12,29 @@ https://projecteuler.net/problem=11
from utils import timeit from utils import timeit
GRID = [ GRID = [
[ 8, 2,22,97,38,15, 0,40, 0,75, 4, 5, 7,78,52,12,50,77,91, 8], [8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8],
[49,49,99,40,17,81,18,57,60,87,17,40,98,43,69,48, 4,56,62, 0], [49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 4, 56, 62, 0],
[81,49,31,73,55,79,14,29,93,71,40,67,53,88,30, 3,49,13,36,65], [81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 3, 49, 13, 36, 65],
[52,70,95,23, 4,60,11,42,69,24,68,56, 1,32,56,71,37, 2,36,91], [52, 70, 95, 23, 4, 60, 11, 42, 69, 24, 68, 56, 1, 32, 56, 71, 37, 2, 36, 91],
[22,31,16,71,51,67,63,89,41,92,36,54,22,40,40,28,66,33,13,80], [22, 31, 16, 71, 51, 67, 63, 89, 41, 92, 36, 54, 22, 40, 40, 28, 66, 33, 13, 80],
[24,47,32,60,99, 3,45, 2,44,75,33,53,78,36,84,20,35,17,12,50], [24, 47, 32, 60, 99, 3, 45, 2, 44, 75, 33, 53, 78, 36, 84, 20, 35, 17, 12, 50],
[32,98,81,28,64,23,67,10,26,38,40,67,59,54,70,66,18,38,64,70], [32, 98, 81, 28, 64, 23, 67, 10, 26, 38, 40, 67, 59, 54, 70, 66, 18, 38, 64, 70],
[67,26,20,68, 2,62,12,20,95,63,94,39,63, 8,40,91,66,49,94,21], [67, 26, 20, 68, 2, 62, 12, 20, 95, 63, 94, 39, 63, 8, 40, 91, 66, 49, 94, 21],
[24,55,58, 5,66,73,99,26,97,17,78,78,96,83,14,88,34,89,63,72], [24, 55, 58, 5, 66, 73, 99, 26, 97, 17, 78, 78, 96, 83, 14, 88, 34, 89, 63, 72],
[21,36,23, 9,75, 0,76,44,20,45,35,14, 0,61,33,97,34,31,33,95], [21, 36, 23, 9, 75, 0, 76, 44, 20, 45, 35, 14, 0, 61, 33, 97, 34, 31, 33, 95],
[78,17,53,28,22,75,31,67,15,94, 3,80, 4,62,16,14, 9,53,56,92], [78, 17, 53, 28, 22, 75, 31, 67, 15, 94, 3, 80, 4, 62, 16, 14, 9, 53, 56, 92],
[16,39, 5,42,96,35,31,47,55,58,88,24, 0,17,54,24,36,29,85,57], [16, 39, 5, 42, 96, 35, 31, 47, 55, 58, 88, 24, 0, 17, 54, 24, 36, 29, 85, 57],
[86,56, 0,48,35,71,89, 7, 5,44,44,37,44,60,21,58,51,54,17,58], [86, 56, 0, 48, 35, 71, 89, 7, 5, 44, 44, 37, 44, 60, 21, 58, 51, 54, 17, 58],
[19,80,81,68, 5,94,47,69,28,73,92,13,86,52,17,77, 4,89,55,40], [19, 80, 81, 68, 5, 94, 47, 69, 28, 73, 92, 13, 86, 52, 17, 77, 4, 89, 55, 40],
[ 4,52, 8,83,97,35,99,16, 7,97,57,32,16,26,26,79,33,27,98,66], [4, 52, 8, 83, 97, 35, 99, 16, 7, 97, 57, 32, 16, 26, 26, 79, 33, 27, 98, 66],
[88,36,68,87,57,62,20,72, 3,46,33,67,46,55,12,32,63,93,53,69], [88, 36, 68, 87, 57, 62, 20, 72, 3, 46, 33, 67, 46, 55, 12, 32, 63, 93, 53, 69],
[ 4,42,16,73,38,25,39,11,24,94,72,18, 8,46,29,32,40,62,76,36], [4, 42, 16, 73, 38, 25, 39, 11, 24, 94, 72, 18, 8, 46, 29, 32, 40, 62, 76, 36],
[20,69,36,41,72,30,23,88,34,62,99,69,82,67,59,85,74, 4,36,16], [20, 69, 36, 41, 72, 30, 23, 88, 34, 62, 99, 69, 82, 67, 59, 85, 74, 4, 36, 16],
[20,73,35,29,78,31,90, 1,74,31,49,71,48,86,81,16,23,57, 5,54], [20, 73, 35, 29, 78, 31, 90, 1, 74, 31, 49, 71, 48, 86, 81, 16, 23, 57, 5, 54],
[ 1,70,54,71,83,51,54,69,16,92,33,48,61,43,52, 1,89,19,67,48] [1, 70, 54, 71, 83, 51, 54, 69, 16, 92, 33, 48, 61, 43, 52, 1, 89, 19, 67, 48],
] ]
def grid_product(x, y, dx, dy, n): def grid_product(x, y, dx, dy, n):
result = 1 result = 1
for i in range(n): for i in range(n):
@@ -48,7 +49,7 @@ def compute():
marked in red. marked in red.
The product of these numbers is 26 x 63 x 78 x 14 = 1788696. The product of these numbers is 26 x 63 x 78 x 14 = 1788696.
What is the greatest product of four adjacent numbers in any direction What is the greatest product of four adjacent numbers in any direction
(up, down, left, right, or diagonally) in the 20x20 grid? (up, down, left, right, or diagonally) in the 20x20 grid?
""" """
@@ -59,17 +60,16 @@ def compute():
for y in range(height): for y in range(height):
for x in range(width): for x in range(width):
if x + adjacent_nums <= width: if x + adjacent_nums <= width:
ans = max(grid_product(x, y, 1, 0, adjacent_nums), ans) ans = max(grid_product(x, y, 1, 0, adjacent_nums), ans)
if y + adjacent_nums <= height: if y + adjacent_nums <= height:
ans = max(grid_product(x, y, 0, 1, adjacent_nums), ans) ans = max(grid_product(x, y, 0, 1, adjacent_nums), ans)
if x + adjacent_nums <= width and y + adjacent_nums <= height: if x + adjacent_nums <= width and y + adjacent_nums <= height:
ans = max(grid_product(x, y, 1, 1, adjacent_nums), ans) ans = max(grid_product(x, y, 1, 1, adjacent_nums), ans)
if x - adjacent_nums >= -1 and y + adjacent_nums <= height: if x - adjacent_nums >= -1 and y + adjacent_nums <= height:
ans = max(grid_product(x, y, -1, 1, adjacent_nums), ans) ans = max(grid_product(x, y, -1, 1, adjacent_nums), ans)
return ans return ans
if __name__ == "__main__": if __name__ == "__main__":
print(f"Result for Problem 11 is {compute()}")
print(f"Result for Problem 11: {compute()}")