코린이의 소소한 공부노트

[LeetCode/Easy] 832. Flipping an Image 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 832. Flipping an Image

무지맘 2022. 12. 8. 11:23

1. Input

1) 크기가 n*n2차원 행렬 image

 

2. Output

1) 각 행의 요소를 거꾸로 배열(flipping)한 뒤 01, 10으로 변환(invert)한 행렬

 

3. Constraint

1) n == image.length == image[i].length

2) 1 <= n <= 20

3) images[i][j]0 또는 1이다.

 

4. Example

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

설명:

- 처음에 각 행의 요소를 거꾸로 하면 [[0,0,1,1],[1,0,0,1],[1,1,1,0],[0,1,0,1]]이 된다.

- 그 후 01, 10으로 바꾸면 [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]이 된다.

 

5. Code

1) 첫 코드(2022/06/14)

int n = image.length;
int tmp = 0;
for(int i=0 ; i<n ; i++){
    for(int j=0 ; j<n/2 ; j++){
        tmp = image[i][j]==0 ? 1 : 0;
        image[i][j] = image[i][n-1-j]==0 ? 1 : 0;
        image[i][n-1-j] = tmp;
    } // for j
} // for i

if(n%2 != 0){
    for(int i=0 ; i<n ; i++){
        image[i][n/2] = image[i][n/2]==0 ? 1 : 0;
    } // for i
}

return image;