【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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章