https://leetcode.com/problems/projection-area-of-3d-shapes/description/ Easy

Условие

Дана квадратная сетка grid размером n x n, где grid[i][j] представляет собой количество кубиков, сложенных в ячейке (i, j). Необходимо вычислить суммарную площадь проекций этой 3D-фигуры на три плоскости:

• XY-плоскость (вид сверху): количество ячеек, где grid[i][j] > 0.

• YZ-плоскость (вид сбоку): сумма максимальных значений в каждом столбце.

• XZ-плоскость (вид спереди): сумма максимальных значений в каждой строке.

Решение

class Solution {
    fun projectionArea(grid: Array<IntArray>): Int {
        val n = grid.size
        var top = 0
        var front = 0
        var side = 0

        for (i in 0 until n) {
            var maxRow = 0
            var maxCol = 0
            for (j in 0 until n) {
                if (grid[i][j] > 0) top++
                maxRow = maxOf(maxRow, grid[i][j])
                maxCol = maxOf(maxCol, grid[j][i])
            }
            front += maxRow
            side += maxCol
        }

        return top + front + side
    }
}