2D 행렬과 셀 인덱스 집합이 있다고 가정합니다. 셀 인덱스는 (i, j)로 표시되며 여기서 i는 행이고 j는 열입니다. 이제 모든 주어진 셀 인덱스 (i, j)에 대해 i번째 행에 존재하는 요소를 제외한 모든 행렬 요소의 합을 찾아야 하고 /또는 j번째 열.
따라서 입력이 다음과 같으면
2 | 2 | 3 |
4 | 5 | 7 |
6 | 4 | 3 |
셀 인덱스 =[(0, 0), (1, 1), (0, 1)], 출력은 [19, 14, 20]
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
n :=ind_arr의 크기
-
ans :=새 목록
-
0에서 n 사이의 i에 대해 수행
-
합계 :=0
-
행 :=ind_arr[i, 0]
-
열 :=ind_arr[i, 1]
-
mat의 행 수에 대한 범위 0의 j에 대해 수행
-
맵의 열 개수까지 범위 0의 k에 대해 수행
-
j가 row와 같지 않고 k가 col과 같지 않다면
-
합계 :=합계 + mat[j, k]
-
-
-
-
ans의 끝에 Sum 삽입
-
-
반환
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def show_sums(mat, ind_arr): n = len(ind_arr) ans = [] for i in range(0, n): Sum = 0 row = ind_arr[i][0] col = ind_arr[i][1] for j in range(0, len(mat)): for k in range(0, len(mat[0])): if j != row and k != col: Sum += mat[j][k] ans.append(Sum) return ans mat = [[2, 2, 3], [4, 5, 7], [6, 4, 3]] ind_arr = [(0, 0),(1, 1),(0, 1)] print(show_sums(mat, ind_arr))
입력
mat = [[2, 2, 3], [4, 5, 7], [6, 4, 3]] ind_arr = [(0, 0),(1, 1),(0, 1)
출력
[19, 14, 20]