Solution 1) 내 풀이
class Solution {
    public int solution(int[][] dots) {
        int x = 0;
        int y = 0;
        
        for (int i = 1; i < dots.length; i++) {
            int tmpX = dots[0][0];
            int tmpY = dots[0][1];
            if (tmpX == dots[i][0]) {
                x = Math.abs(tmpY - dots[i][1]);
            } else if (tmpY == dots[i][1]) {
                y = Math.abs(tmpX - dots[i][0]);
            }
        }
        return x * y;
    }
}

 

코드 및 문제 리뷰

 

int 형 2차원 배열이 주워진다. 이 배열의 length는 4로 각 요소는 사각형의 모서리의 좌표가 된다.

좌표로 사각형을 그려봤을 때 나오는 사각형의 넓이를 반환하는 문제이다.

예시좌표 [[2, 1], [4, 1], [2, 4], [4, 4]] 로 봤을 때 결국 [0, 1] 0은 x의 위치, 1은 y의 위치가 된다.

내가 구현한 로직은 x끼리 같은 요소중 y의 차이를 y의 값으로, y끼리 같은 요소중 x의 차이를 x의 값으로 둔다.

x의 값 2끼리 같으니 Math.abs(1 - 4) 해서 y의 값이 3

y의 값 1끼리 같으니 Math.abs(2 - 4) 해서 x의 값이 2

둘의 값을 곱한 값이 구하려는 사각형의 넓이가 된다.

+ Recent posts