행렬이 있다고 가정하고 행과 열에서 값이 가장 큰 정수의 총 개수를 찾아야 합니다.
따라서 입력이 다음과 같으면
1 | 3 | 2 |
4 | 6 | 5 |
1 | 5 | 7 |
6과 7이 유효하므로 출력은 2가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
매트 :=행렬
-
r_maxes :=mat의 각 행의 최대 요소 목록을 만듭니다.
-
c_maxes :=mat의 각 열의 최대 요소 목록 만들기
-
a :=새 목록
-
범위 0에서 행 수 - 1의 r에 대해 수행
-
범위 0에서 열 수 - 1에 있는 c의 경우 수행
-
v :=매트[r, c]
-
r_maxes[r]이 v이고 c_maxes[c]가 v이면
-
-
-
-
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, matrix): mat = matrix trans_mat = list(zip(*matrix)) print(mat, trans_mat) r_maxes = [max(row) for row in mat] c_maxes = [max(t_row) for t_row in trans_mat] a = [] for r in range(len(mat)): for c in range(len(trans_mat)): v = mat[r][c] if (r_maxes[r], c_maxes[c]) == (v, v): a.append(v) return len(a) ob = Solution() matrix = [ [1, 3, 2], [4, 6, 5], [1, 5, 7] ] print(ob.solve(matrix))
입력
[[1, 3, 2], [4, 6, 5], [1, 5, 7]]
출력
2