주어진 행렬이 있다고 가정합니다. 차원이 주어진 행렬과 동일한 새로운 행렬 res를 찾아야 합니다. 여기서 res[i, j]의 각 요소 =각 r ≤ 나는, 그리고 c ≤ j.
따라서 입력이 다음과 같으면
8 | 2 |
7 | 4 |
그러면 출력은
8 | 10 |
15 | 21 |
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
행렬이 비어 있으면
-
반환 행렬
-
-
R :=행렬의 행 개수
-
C :=행렬의 열 개수
-
범위 1에서 R - 1까지의 r에 대해 수행
-
범위 0에서 C - 1의 c에 대해 수행
-
행렬[r, c] :=행렬[r, c] + 행렬[r - 1, c]
-
-
-
0 ~ R - 1 범위의 r에 대해
-
범위 1에서 C - 1까지의 c에 대해 수행
-
행렬[r, c] :=행렬[r, c] + 행렬[r, c - 1]
-
-
-
반환 행렬
예
더 나은 이해를 위해 다음 구현을 살펴보겠습니다.
def solve(matrix): if not matrix: return matrix R, C = len(matrix), len(matrix[0]) for r in range(1, R): for c in range(C): matrix[r][c] += matrix[r - 1][c] for r in range(R): for c in range(1, C): matrix[r][c] += matrix[r][c - 1] return matrix matrix = [ [8, 2], [7, 4] ] print(solve(matrix))
입력
[[8, 2],[7, 4]]
출력
[[8, 10], [15, 21]]