본문 바로가기
CodeSignal

matrixElementsSum

by Doromi 2023. 11. 25.
728x90
반응형
주어진 2D 행렬에서 유효한 방을 통과하면서 방문한 모든 셀의 값을 합산하는 문제입니다. 
다만, 한 번 방문한 행의 아래 층에 있는 방들은 모두 0으로 처리되며, 
이후에 방문한 행에 있는 방들만 유효하게 합산됩니다.

int matrixElementsSum(int[][] matrix) {
    int totalSum = 0;
    int rows = matrix.Length;
    int cols = matrix[0].Length;

    for (int col = 0; col < cols; col++) {
        for (int row = 0; row < rows; row++) {
            if (matrix[row][col] == 0) {
                // 만약 현재 열에 0이 등장하면 해당 열 이후의 행들의 값을 무시
                break;
            }

            // 0이 등장하지 않은 경우 해당 값 더함
            totalSum += matrix[row][col];
        }
    }

    return totalSum;
}

 

행렬의 각 행은 호텔의 각 층을 나타내고, 각 열은 호텔의 각 방을 나타냅니다. 문제에서는 무료로 제공되는 방이 있는 경우, 그 방 아래에 있는 모든 방을 사용할 수 없다고 명시되어 있습니다. 따라서 만약 무료로 제공되는 방이 있으면 그 방이 있는 열 이후의 모든 방을 사용할 수 없습니다.

열을 기준으로 확인하는 이유는 행렬의 각 열은 같은 층에 위치한 방들을 나타내기 때문입니다. 만약 어떤 방이 무료로 제공된다면, 그 방이 있는 열 이후에 있는 모든 방을 사용할 수 없게 됩니다. 따라서 0이 등장한 열을 기준으로 해당 열 이후의 행들의 값을 무시하고 합산해야 올바른 결과를 얻을 수 있습니다.
728x90
반응형

'CodeSignal' 카테고리의 다른 글

commonCharacterCount  (0) 2023.11.28
All Longest Strings  (0) 2023.11.27
Almost Increasing Sequence  (0) 2023.11.25
Make Array Consecutive 2  (0) 2023.11.22
firstDuplicate  (0) 2023.11.17