행렬이 있다고 가정하고 각 열을 오름차순으로 정렬해야 합니다.
따라서 입력이 다음과 같으면
11 | 21 | 31 |
6 | 6 | 4 |
1 | 11 | 8 |
그러면 출력은
1 | 6 | 4 |
6 | 11 | 8 |
11 | 21 | 31 |
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- R :=행렬의 행 개수, C :=행렬의 열 개수
- res :=주어진 행렬과 같은 크기의 행렬이고 0으로 채움
- 0~C 범위의 col에 대해
- values :=요소를 행렬[col]의 벡터로 사용
- 0~R 범위의 행에 대해 다음을 수행합니다.
- res[row, col] :=값에서 마지막 요소 삭제
- 반환 결과
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, matrix): R = len(matrix) C = len(matrix[0]) res = [[0] * C for _ in range(R)] for col in range(C): values = [r[col] for r in matrix] values.sort(reverse=True) for row in range(R): res[row][col] = values.pop() return res ob = Solution() matrix = [[11, 21, 31],[6, 6, 4],[1, 11, 8]] print(ob.solve(matrix))
입력
[[11, 21, 31], [6, 6, 4], [1, 11, 8]]
출력
[[1, 6, 4],[6, 11, 8],[11, 21, 31]]