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

Python에서 행렬 뒤집기 및 반전

<시간/>

이진 행렬 매트가 있다고 가정합니다. 행렬의 각 행을 선택한 다음 행을 반대로 해야 합니다. 그런 다음 각 비트를 뒤집습니다(0에서 1, 1에서 0).

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

1 1 0
0 1 0
0 0 1

그러면 출력은

1 0 0
1 0 1
0 1 1

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

  • 트랙:=0
  • 매트의 각 행에 대해 다음을 수행합니다.
    • 행 반전
    • 추적기 :=0
    • 행의 각 val에 대해 다음을 수행합니다.
      • val이 1이면
        • 매트[트랙, 트래커] :=0
      • 그렇지 않으면
        • 매트[트랙, 트래커] :=1
      • 추적기 :=추적기 + 1
    • 트랙:=트랙 + 1
  • 반품 매트

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

예시

class Solution:
   def solve(self, mat):
      track=0
      for row in mat:
         row.reverse()
         tracker = 0
         for val in row:
            if val == 1:
               mat[track][tracker] = 0
            else:
               mat[track][tracker] = 1
            tracker += 1
         track += 1
      return mat
ob = Solution()
mat = [[1,1,0],[0,1,0],[0,0,1]]
print(ob.solve(mat))

입력

[[1,1,0],[0,1,0],[0,0,1]]

출력

[[1, 0, 0], [1, 0, 1], [0, 1, 1]]