🍋 문제링크
https://www.acmicpc.net/problem/16931
🍎 코드 제출 기록 (메모리 및 시간)
메모리 : 123532 KB
시간 : 132 ms
🍓 문제풀이
겉넓이를 구하기 위해서는 입체도형의 up, down, front, back, left, right 에서 보이는 사각형들의 합을 구하면 된다
up, down = N * M
left, right = 1 ~ N 에서 맨 앞 블록 높이 + (j번째 블록높이 - (j-1)번째 블록높이) → 양수일때만
front, back = 1 ~ M 에서 맨 앞 블록 높이 + (i번째 블록높이 - (i-1)번째 블록높이) → 양수일때만
🍉 Code
N, M = map(int, input().split())
arr = [list(map(int, input().split())) for _ in range(N)]
up = N * M
left = 0
for i in range(N):
for j in range(M):
if j == 0:
left += arr[i][j]
else:
if arr[i][j-1] < arr[i][j]:
left += arr[i][j] - arr[i][j-1]
front = 0
for j in range(M):
for i in range(N):
if i == 0:
front += arr[i][j]
else:
if arr[i-1][j] < arr[i][j]:
front += arr[i][j] - arr[i-1][j]
answer = 2 * (up + left + front)
print(answer)
반응형
'➰ 취업준비 > 알고리즘 문제풀이' 카테고리의 다른 글
[Python][백준][17086] 아기 상어 2 (BFS) (0) | 2021.04.26 |
---|---|
[C++][백준][17086] 아기 상어 2 (BFS) (0) | 2021.04.26 |
[Python][백준][11051] 이항 계수 2 (DP) (0) | 2021.04.26 |
[Python][프로그래머스] Level 3 - 순위(그래프) (0) | 2021.04.26 |
[삼성/코테기출][Python][백준][14501] 퇴사 (완전탐색/DP) (2) | 2021.04.22 |