이진 행렬 A가 있다고 가정하고 이것이 이미지의 표현이고 이미지를 수평으로 뒤집고 반전한 후 최종적으로 결과 이미지를 반환하려고 합니다. 이미지를 수평으로 뒤집으려면 이미지의 각 행이 반전됩니다. 그리고 이미지를 반전시키려면 각각의 0이 1로 대체되고 각각의 1이 0으로 대체됩니다.
따라서 입력이 다음과 같으면
1 | 1 | 0 |
1 | 0 | 1 |
0 | 0 | 0 |
그러면 출력은
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 결과:=새 목록
- A의 각 행 i에 대해 다음을 수행합니다.
- 역방향:=i행 역방향
- 범위 0에서 역방향 크기의 j에 대해 다음을 수행합니다.
- Reverse[j]가 1과 같으면
- 역방향[j]:=0
- 그렇지 않으면
- 역방향[j]:=1
- Reverse[j]가 1과 같으면
- 결과 끝에 반전 삽입
- 반환 결과
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
class Solution: def flipAndInvertImage(self, A): result=[] for i in A: Reverse=i[::-1] for j in range(len(Reverse)): if Reverse[j]==1: Reverse[j]=0 else: Reverse[j]=1 result.append(Reverse) return result ob = Solution() print(ob.flipAndInvertImage([[1,1,0],[1,0,1],[0,0,0]]))
입력
[[1,1,0],[1,0,1],[0,0,0]]
출력
[[1, 0, 0], [0, 1, 0], [1, 1, 1]]