59 lines
2.9 KiB
Python
59 lines
2.9 KiB
Python
import sys
|
|
|
|
from pprint import pprint
|
|
|
|
with open('test_input','r') as f:
|
|
lines = [[tree for tree in lines.rstrip('\n')] for lines in f]
|
|
|
|
|
|
forrest = [['O' for i in range(len(lines))] for j in range(len(lines[0]))]
|
|
|
|
for i in range(0,len(lines)):
|
|
for j in range(0,len(lines[i])):
|
|
forrest[i][j] = 'O'
|
|
|
|
for i in range(0,len(lines)):
|
|
for j in range(0,len(lines[i])):
|
|
print(lines[i][j],end='')
|
|
print('(' + str(i) + ',' + str(j)+ ') ',end='')
|
|
print()
|
|
|
|
for i in range(0,len(lines)):
|
|
for j in range(0,len(lines[i])):
|
|
#print(lines[i][j],end='')
|
|
#print('(' + str(i) + ',' + str(j)+ ') ',end='')
|
|
if (i > 0 and i < len(lines)-1) and (j > 0 and j < len(lines[i])-1):
|
|
#check up
|
|
print('-> Checking: ' + str(lines[i][j]) + '(' + str(i) + ',' + str(j) + ')')
|
|
for l in range(0,i): #check up
|
|
if forrest[i][j] == 'X':
|
|
break
|
|
#print('Range (up) : ' + forrest[i][j] +'>> ' + '0-' + str(i-1) + ' - ' + str(lines[i][j]) + '(' + str(i) + ',' + str(j)+ ')' + ' <=> ' + str(lines[l][j]) + '(' + str(l) + ',' + str(j)+ ') ')
|
|
if (lines[i][j] <= lines[l][j]) and forrest[i][j] != 'X':
|
|
for k in range(0,j): #check left
|
|
if forrest[i][j] == 'X':
|
|
break
|
|
#print('Range (left): ' + forrest[i][j] +'>> ' + '0-' + str(j-1) + ' - ' + str(lines[i][j]) + '(' + str(i) + ',' + str(j)+ ')' + ' <=> ' + str(lines[i][k]) + '(' + str(i) + ',' + str(k)+ ') ')
|
|
if lines[i][j] <= lines[i][k] and forrest[i][j] != 'X':
|
|
for p in range(i+1,len(lines)): #check down
|
|
if forrest[i][j] == 'X':
|
|
break
|
|
#print('Range (down): ' + forrest[i][j] +'>> ' + str(i+1) + '-' + str(len(lines)) + ' - ' + str(lines[i][j]) + '(' + str(i) + ',' + str(j)+ ')' + ' <=> ' + str(lines[p][j]) + '(' + str(p) + ',' + str(j)+ ') ')
|
|
if lines[i][j] <= lines[p][j] and forrest[i][j] != 'X':
|
|
for q in range(j+1,len(lines[0])): #check right
|
|
if forrest[i][j] == 'X':
|
|
break
|
|
#print('Range (right): ' + forrest[i][j] + '>> ' + str(j+1) + '-' + str(len(lines[0])) + ' - ' + str(lines[i][j]) + '(' + str(i) + ',' + str(j)+ ')' + ' <=> ' + str(lines[i][q]) + '(' + str(i) + ',' + str(q)+ ') ')
|
|
if lines[i][j] <= lines[i][q] and forrest[i][j] != 'X':
|
|
forrest[i][j] = 'X'
|
|
#print('adding X')
|
|
|
|
|
|
count=0
|
|
|
|
for i in forrest:
|
|
for j in i:
|
|
if j == 'O':
|
|
count+=1
|
|
print(count)
|