문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
주어진 n x n 격자에 x, y, z축에 정렬된 1 x 1 x 1 정육면체를 배치해야 한다.
각 v = grid[i][j] 값은 셀(i, j) 위에 놓인 v개의 큐브로 이루어진 탑을 나타낸다.
정육면체들의 xy, yz, zx 평면에 대한 투영을 본다.
투영은 그림자처럼 3차원 도형을 2차원 평면에 투영한 것이다. 위쪽, 앞쪽, 옆쪽에서 정육면체를 바라볼 때 이 "그림자"를 보는 것이다.
세 투영면의 총 면적을 반환해라.
#1
Input: grid = [[1, 2], [3, 4]]
Output: 17
#2
Input: grid = [[2]]
Output: 5
#3
Input: grid = [[1, 0], [0, 2]]
Output: 8
class Solution {
public int projectionArea(int[][] grid) {
int result = 0;
int n = grid.length;
for(int i = 0; i < n; ++i){
int x = 0;
int y = 0;
for(int j = 0; j < n; ++j){
x = Math.max(x, grid[i][j]);
y = Math.max(y, grid[j][i]);
if(grid[i][j] > 0){
++result;
}
}
result += x + y;
}
return result;
}
}