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

Python에서 주어진 행렬 내에서 대상 값을 찾는 프로그램 또는 그렇지 않은 프로그램

<시간/>

각 행과 열이 내림차순으로 정렬되어 있는 2D 행렬이 있다고 가정하면 주어진 대상이 그 안에 있는지 여부를 확인해야 합니다.

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

2 4 30
3 4 31
6 6 32

그리고 target =31이면 출력은 True가 됩니다.

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

  • col :=행렬의 열 크기 - 1
  • 행렬 크기 범위 0에서 행렬의 i에 대해 다음을 수행합니다.
    • while matrix[i, col]> target 및 col>=0, do
      • col :=col - 1
    • 행렬[i, col]이 대상과 같으면
      • 참 반환
  • 거짓을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

class Solution:
   def solve(self, matrix, target):
      col = len(matrix[0]) - 1
      for i in range(len(matrix)):
         while matrix[i][col] > target and col >= 0:
            col = col - 1
         if matrix[i][col] == target:
            return True
      return False
ob = Solution()
matrix = [ [2, 4, 30], [3, 4, 31], [6, 6, 32] ]
target = 31
print(ob.solve(matrix, target))

입력

matrix = [
[2, 4, 30],
[3, 4, 31],
[6, 6, 32]]
target = 31

출력

True