1def surfaceArea(A):
2 # Write your code here
3 bottomTop, front, back, l, r, adj = 0, 0, 0, 0, 0, 0
4
5 for i in range(len(A)):
6 for j in range(len(A[0])):
7 if A[i][j] > 0: bottomTop += 2
8 if i == 0: front += A[i][j]
9 if i == len(A) - 1: back += A[i][j]
10
11 # add differences of boxes higher than adjacent box heights
12 if i > 0 and A[i - 1][j] > A[i][j]: adj += A[i - 1][j] - A[i][j]
13 if i < len(A) - 1 and A[i + 1][j] > A[i][j]: adj += A[i + 1][j] - A[i][j]
14 if j > 0 and A[i][j - 1] > A[i][j]: adj += A[i][j - 1] - A[i][j]
15 if j < len(A[0]) - 1 and A[i][j + 1] > A[i][j]: adj += A[i][j + 1] - A[i][j]
16 l += A[i][0]
17 r += A[i][len(A[0]) - 1]
18
19 return bottomTop + front + back + l + r + adj