문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
n x n 이진 행렬 image가 주어졌을 때, 이미지를 좌우 반전시킨 후, 반전된 이미를 반환해라.
이미지를 좌우 반전한다는 것은 이미지의 각 행이 뒤집히는 것을 의미한다.
이미지를 반전시키는 것은 모든 0을 1로, 모든 1을 0으로 바꾸는 것을 의미한다.
#1
Input: image = [[1, 1, 0], [1, 0, 1], [0, 0, 0]]
Output: [[1, 0 ,0], [0, 1, 0], [1, 1, 1]]
Explanation: 먼저 각 행을 반전시킨다:[[0, 1, 1], [1, 0, 1], [0, 0, 0]].
그리고 이미지를 반전시킨다:[[1, 0, 0], [0, 1, 0], [1, 1, 1]].
#2
Input: image = [[1, 1, 0, 0], [1, 0, 0, 1], [0, 1, 1, 1], [1, 0, 1, 0]]
Output: [[1, 1, 0, 0], [0, 1, 1, 0], [0, 0, 0, 1], [1, 0, 1, 0]]
Explanation: 먼저 각 행을 반전시킨다:[[0, 0, 1, 1], [1, 0, 0, 1], [1, 1, 1, 0], [0, 1, 0, 1]].
그리고 이미지를 반전시킨다:[[1, 1, 0, 0], [0, 1, 1, 0], [0, 0, 0, 1], [1, 0, 1, 0]].
class Solution {
public int[][] flipAndInvertImage(int[][] image) {
int n = image.length;
for(int[] i : image){
for(int j = 0; j * 2 < n; j++){
if(i[j] == i[n - j - 1]){
i[j] = i[n - j - 1] ^= 1;
}
}
}
return image;
}
}