Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발 일지

766. Toeplitz Matrix (퇴플리츠 행렬) C# 본문

코딩 테스트/LeetCode

766. Toeplitz Matrix (퇴플리츠 행렬) C#

포카리tea 2022. 11. 3. 12:33

Given an m x n matrix, return true if the matrix is Toeplitz. Otherwise, return false.

A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same elements.

m x n 행렬이 주어졌을 때, 이 행렬이 퇴플리츠일 경우 true를 그렇지 않을 경우 false를 반환하세요.

행렬이 왼쪽 위부터 오른쪽 아래까지의 모든 대각선이 동일한 요소를 갖는 경우 토플리츠입니다.

 

예시 1:

입력: matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]
출력: true
설명:
위 그리드에서 대각선은 
"[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]".
각 대각선에서 모든 요소는 동일하므로 답은 참입니다.

예시 2:

입력: 행렬 = [[1,2],[2,2]]
출력: false
설명: 
대각선 "[1, 2]"에는 다른 요소가 있습니다.

더 나아가기: 

  • 행렬이 디스크에 저장되어 있고 메모리가 한 번에 최대 행렬의 한 행만 메모리에 로드할 수 있도록 제한되어 있다면 어떻게 해야 할까요?
  • 행렬이 너무 커서 한 번에 일부 행만 메모리에 로드할 수 있따면 어떻게 해야 할까요?

정답:

public class Solution {
    public bool IsToeplitzMatrix(int[][] matrix) {
        for(int i = 1; i < matrix.Length; i++)
        {
            for(int j = 1; j < matrix[i].Length; j++)
            {
                if(matrix[i][j] != matrix[i - 1][j - 1])
                {
                    return false;
                }
            }
        }
        return true;
    }
}

해설: 첫번째 행과 열들을 제외한 값들은 모두 [i -1][j - 1] 값과 같아야하므로 다르면 false 문제없이 통과하면 true를 반환하게하여 풀었습니다