프로그래머스 : 직사각형의 넓이

Digeut·2023년 3월 19일
0

프로그래머스

목록 보기
25/164

❔문제설명

2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요.

⚠️제한사항

dots의 길이 = 4
dots의 원소의 길이 = 2
-256 < dots[i]의 원소 < 256
잘못된 입력은 주어지지 않습니다.

🤔아이디어

가로와 세로의 길이만 구하면 그 길이값을 곱해서 넓이 구할수 있는데
2차원에서 배열값들의 길이를 size로 구하면 되나? length인가

💡코드풀이

class Solution {
    public int solution(int[][] dots) {
        int answer = 0;
        //x값의 길이 = x최댓값 - x최솟값
        //y값의 길이 = y최댓값 - y최솟값
        int minX = dots[0][0];
        int maxX = dots[0][0];
        int minY = dots[0][1];
        int maxY = dots[0][1];
        
        for(int i = 1 ; i < dots.length ; i++){
            minX = Math.min(minX, dots[i][0]);
            maxX = Math.max(maxX, dots[i][0]);
            minY = Math.min(minY, dots[i][1]);
            maxY = Math.max(maxY, dots[i][1]);
        }
        
        answer = (maxX - minX)*(maxY-minY);
        
        return answer;
    }
}

다른 사람들 풀이 보니까 점과 점사이의 거리를 구하는 공식을 사용해서 하기도 하던데 그렇게 되면 제곱까지 사용을 해야해서... 일단은 변의 길이를 구해서 넓이 구하는 방식으로 계산했다. 2차원 배열에서 [첫번째][두번째]두번째 값이 각각 x값과 y값을 나타내는 좌표를 말하는건 이해를 했는데 왜 첫번째 배열의 값이 변하면서 구해지는걸까.. 좌표상에서 바뀌는걸 말하는건가?

profile
개발자가 될 거야!

0개의 댓글