백준 16931 겉넓이 구하기

gmlwlswldbs·2021년 9월 28일
0

코딩테스트

목록 보기
37/130
n, m = map(int, input().split())

g = [list(map(int, input().split())) for _ in range(n)]

ans = (2 * n * m)

for i in range(n):
    for j in range(0, m-1):
        ans += abs(g[i][j+1] - g[i][j])
    ans += (g[i][0] + g[i][-1])
for i in range(m):
    for j in range(0, n-1):
        ans += abs(g[j+1][i] - g[j][i])
    ans += (g[0][i] + g[-1][i])    


print(ans)

처음에는 단순히 중간에 생기는 칸을 생각 못하고 구함
중간에 높이 차가 생기면 겉넓이가 생기니까 행/열마다 for 문을 이용해서 풀었음

0개의 댓글