각 행과 열이 내림차순으로 정렬되어 있는 2D 행렬이 있다고 가정하면 n번째로 작은 수를 찾아야 합니다.
따라서 입력이 다음과 같으면
2 | 4 | 30 |
3 | 4 | 31 |
6 | 6 | 32 |
그리고 n =4이면 출력은 6이 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- lst :=새 목록
- 행렬 i의 각 행에 대해 다음을 수행합니다.
- i의 각 셀 j에 대해 다음을 수행합니다.
- lst 끝에 j 삽입
- i의 각 셀 j에 대해 다음을 수행합니다.
- 목록 정렬
- 1st[n] 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, matrix, n): lst = [] for i in matrix: for j in i: lst.append(j) lst.sort() return lst[n] ob = Solution() matrix = [ [2, 4, 30], [3, 4, 31], [6, 6, 32] ] n = 4 print(ob.solve(matrix, n))
입력
matrix = [ [2, 4, 30], [3, 4, 31], [6, 6, 32] ] n = 4
출력
6