aoc

advent of code
git clone git://source.orangerot.dev:/aoc.git
Log | Files | Refs

main2.py (1165B)


      1 import sys
      2 
      3 def isVisible(lines, row, col):
      4     scenic = 1
      5 
      6     # up
      7     score1 = 0
      8     for x in lines[:row][::-1]:
      9         score1 += 1
     10         if ( x[col] >= lines[row][col]):
     11             break
     12     scenic *= score1
     13 
     14     # left
     15     score3 = 0
     16     for x in lines[row][:col-1][::-1]:
     17         score3 += 1
     18         if ( x >= lines[row][col]):
     19             break
     20     scenic *= score3
     21 
     22     # right
     23     score4 = 0
     24     for x in lines[row][col+1:]:
     25         score4 += 1
     26         if ( x >= lines[row][col]):
     27             break
     28     scenic *= score4
     29 
     30     # down
     31     score2 = 0
     32     for x in lines[row:]:
     33         score2 += 1
     34         if ( x[col] >= lines[row][col]):
     35             break
     36     scenic *= score2
     37 
     38 
     39     print(row, col, "|", score1, score2, score3, score4, "|", scenic)
     40     return scenic
     41 
     42 with open(sys.argv[1], "r") as file:
     43     lines = file.readlines()
     44     for a in range(len(lines)):
     45         lines[a] = lines[a].rstrip()
     46         # a = a.rstrip()
     47 
     48     best=0
     49     for row in range(len(lines)):
     50         for col in range(len(lines[0])):
     51             # print(lines[row][col], end="")
     52             yes = isVisible(lines, row, col)
     53             best = max(best, yes)
     54 
     55     print(best)