[LeetCode] Flipping an Image

아르당·2026년 3월 2일

LeetCode

목록 보기
179/213
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

n x n 이진 행렬 image가 주어졌을 때, 이미지를 좌우 반전시킨 후, 반전된 이미를 반환해라.
이미지를 좌우 반전한다는 것은 이미지의 각 행이 뒤집히는 것을 의미한다.

  • 예를 들어, [1, 1, 0]을 수평으로 뒤집으면 [0, 1, 1]이 된다.

이미지를 반전시키는 것은 모든 0을 1로, 모든 1을 0으로 바꾸는 것을 의미한다.

  • 예를 들어, [0, 1, 1]을 반전시키면 [1, 0, 0]이다.

Example

#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]].

Consraints

  • n == image.length
  • n == image[i].length
  • 1 <= n <= 20
  • images[i][j]는 0 또는 1 둘 중 하나이다.

Solved

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;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글