Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 주어진 행렬에서 n번째로 작은 수를 찾는 프로그램

<시간/>

각 행과 열이 내림차순으로 정렬되어 있는 2D 행렬이 있다고 가정하면 n번째로 작은 수를 찾아야 합니다.

따라서 입력이 다음과 같으면

2 4 30
3 4 31
6 6 32

그리고 n =4이면 출력은 6이 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • lst :=새 목록
  • 행렬 i의 각 행에 대해 다음을 수행합니다.
    • i의 각 셀 j에 대해 다음을 수행합니다.
      • lst 끝에 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