각각 크기가 N과 M인 두 개의 배열 A와 B가 있고 하나의 N X M 이진 행렬이 있다고 가정합니다. 여기서 1은 원래 행렬에 양의 정수가 있고 0은 다음을 의미합니다. 위치는 원래 행렬에도 0을 유지합니다. A[i]가 i번째 행에서 가장 큰 요소를 나타내고 B[j]가 j번째 열에서 가장 큰 요소를 나타내도록 원래 행렬을 생성해야 합니다.
따라서 입력이 A =[4, 2, 3], B =[3, 1, 0, 0, 4, 0, 5] 행렬과 같으면 출력은 행렬
이 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
N :=A의 크기
-
M :=B의 크기
-
범위 0에서 N까지의 i에 대해 수행
-
0에서 M 범위의 j에 대해 수행
-
mat[i, j]가 1과 같으면
-
A[i] 및 B[j]의 최소 표시
-
-
그렇지 않으면
-
새 줄 인쇄
-
-
-
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def print_original_mat(A, B, mat) : N = len(A) M = len(B) for i in range(N) : for j in range(M) : if (mat[i][j] == 1) : print(min(A[i], B[j]), end = " ") else : print(0, end = " ") print() A = [4, 2, 3] B = [3, 1, 0, 0, 4, 0, 5] mat = [ [1, 0, 0, 0, 1, 0, 1], [0, 0, 1, 0, 0, 1, 1], [1, 1, 0, 1, 1, 0, 0]] print_original_mat(A, B, mat);
입력
[4, 2, 3], [3, 1, 0, 0, 4, 0, 5], [[1, 0, 0, 0, 1, 0, 1], [0, 0, 1, 0, 0, 1, 1], [1, 1, 0, 1, 1, 0, 0]]
출력
3 0 0 0 4 0 4 0 0 0 0 0 0 2 3 1 0 0 3 0 0