43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
|
import load_map
|
||
|
|
||
|
|
||
|
def main():
|
||
|
tree_map = load_map.load_map()
|
||
|
|
||
|
visible_from_outside_count = 0
|
||
|
not_visible_from_outside_count = 0
|
||
|
for i in range(len(tree_map)):
|
||
|
for j in range(len(tree_map)):
|
||
|
if i == 0 or i == len(tree_map)-1 or j == 0 or j == len(tree_map)-1:
|
||
|
visible_from_outside_count += 1
|
||
|
elif (max(tree_map[i][:j]) < tree_map[i][j]
|
||
|
or max(tree_map[i][j+1:]) < tree_map[i][j]
|
||
|
or max(get_column_until_i(tree_map, j, i)) < tree_map[i][j]
|
||
|
or max(get_column_from_i(tree_map, j, i+1)) < tree_map[i][j]):
|
||
|
visible_from_outside_count += 1
|
||
|
else:
|
||
|
not_visible_from_outside_count += 1
|
||
|
|
||
|
print(f"Visible from outside: {visible_from_outside_count}\nNot visible from outside: {not_visible_from_outside_count}")
|
||
|
|
||
|
|
||
|
def get_column_until_i(lst: list[list[int]], column_id: int, end_i: int) -> list[int]:
|
||
|
column: list[int] = []
|
||
|
for i in range(end_i):
|
||
|
for j in range(len(lst[i])):
|
||
|
if j == column_id:
|
||
|
column.append(lst[i][j])
|
||
|
return column
|
||
|
|
||
|
|
||
|
def get_column_from_i(lst: list[list[int]], column_id: int, begin_i: int) -> list[int]:
|
||
|
column: list[int] = []
|
||
|
for i in range(begin_i, len(lst)):
|
||
|
for j in range(len(lst[i])):
|
||
|
if j == column_id:
|
||
|
column.append(lst[i][j])
|
||
|
return column
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|