【360】(數據分析師)表面積【Python】
題目描述
將長N*M釐米的短形區域分成N行M列(每行每列的寬度均爲1釐米),第i行第j列的位置上疊放Ai,j個邊長爲1釐米的正方體(1<=Aij<=100)所有正方難題就組成了一個立體圖形,每個正方體六個面中部分會被其他正方體遮擋,未被遮擋的部分的總面積即爲該立方體圖形的表面積,那麼該立體圖形的表面積是多少平方釐米?
輸入描述
第一行包含兩個整數N和M,1<=N,M<=1000
接下來N行,每行包含M個整數,第i行的第j個整數表示Aij
輸出描述
輸出表面積的大小。
示例1
輸入:
2 2
2 1
1 1
輸出:
20
測試結果通過了18%的測試用例,沒有考慮遮擋的情況
import numpy as np
n,m = map(int,input().split())
grid = [[] for i in range(n)]
for i in range(n):
line = input().split(' ')
for j in range(len(line)):
grid[i].append(int(line[j]))
# print(A)
# 計算表面積
S1 = n*m
S2 = 0
for i in range (n):
a = max(grid[i])
# print('最大',a)
S2 += a
# 矩陣的轉置
def transpose(A):
new_A = []
for i in range(len(A[0])):
A1 = []
for j in range(len(A)):
A1.append(A[j][i])
new_A.append(A1)
return new_A
grid2 = transpose(grid)
S3 = 0
for j in range (m):
b = max(grid2[j])
# print('轉至後最大',b)
S3 += b
SSS = (S1 + S2 +S3)*2
print(SSS)