LeetCode 766

HJ seo·2022년 10월 31일
0

Coding Test(Python)

목록 보기
42/45

문제 링크

문제 설명.

메트릭스가 주어지고, 이 메트릭스가 Toeplitz인지 확인해보는 문제.

definition of Toeplitz matrix.

위키 설명
메트릭스 내의 모든 diagonal element들이 서로 같은 값을 가지는 매트릭스를 말한다. 수식을 넣어서 조금 더 간단하게 설명하면 nxm matrix M_nm에 대해서, a_{i,j} = a_{i+1,j+1} for all 1<=i<n, 1<=j<m 이 되는 매트릭스를 말한다.

풀이 설명 및 코드.

풀이 방법이야 간단하다. 대각선상에 있는 원소를 비교해야하고, input이 이중배열로 들어오기 때문에 원소 하나하나를 비교하지 않고, 행과 행을 통째로 비교하는 방식을 사용했다.
정확하게, i번째 행에 대해서 i+1번째 행과 비교할 때 i번째 행의 마지막 원소를 제외한 배열과 i+1번째 행의 첫번째 원소를 제외한 값이 항상 같은 경우 주어진 메트릭스는 Toeplitz라고 할 수 있을 것이다.
(잘 이해가 되지 않는다면 정의에 의해 matrix[i][j] == matrix[i+1][j+1]가 되야한다는 것을 떠올려보자.)
그리고 그 코드를 구현해서 제출했다.

class Solution:
    def isToeplitzMatrix(self, matrix: List[List[int]]) -> bool:
        for i in range(len(matrix)-1):
            if matrix[i][:-1] != matrix[i+1][1:]:
                return False
        return True

잡담.

디스코드봇은 한가지 트라이를 더 해보고 안된다면, DB 하나를 잡아서 사용해보려고 생각중이다.(서비스 자체를 크게 키운다면 당연히 옮겨야겠지만.. 글쌔?.. 현재 생각하는 선은 개인 프로젝트 선에서 끝나거나 많아야 지인정도만 사용하고 개선할 수 있게 만들 예정이기 때문에..) 처음에는 그대로 mongoDB를 사용할까도 생각해봤지만, 구상을 깊이 해볼수록 효율성이 떨어진다.. 만약 DB를 사용하게 된다면 mySQL같은 RDBMS를 사용하거나, 잠시 스택에 박아뒀던 CAP 이론을 공부해보고 DB를 선택해서 프로젝트를 끌고가봐야겠다.

profile
다양한 분야에 관심이 많은 초보 개발자 입니다.

0개의 댓글