본문 바로가기
프로그래머스/[프로그래머스 - JAVA] Lv.0

[프로그래머스 - JAVA] 직사각형 넓이 구하기

by 코딩하는 흰둥이 2023. 3. 15.
반응형

이건 또 무슨 말인가.....


  • 다른 사람 풀이
class Solution {
    public int solution(int[][] dots) {
        int answer = 0;

        int minX = dots[0][0];
        int minY = dots[0][1];
        int maxX = dots[0][0];
        int maxY = dots[0][1];

        for (int i = 0; i < dots.length; i++) {
            minX = Math.min(minX , dots[i][0]);
            minY = Math.min(minY , dots[i][1]);
            maxX = Math.max(maxX , dots[i][0]);
            maxY = Math.max(maxY , dots[i][1]);
        }

        answer = (maxX - minX) * (maxY - minY);

        return answer;
    }
}

나는 문제를 이해하지 못해서 풀지 못하였다

다른 분들의 풀이만 적어둘까 한다

 

직사각형의 넓이를 구하려면 가로 x 세로 로 구할 수 있다

현재 가로 세로의 꼭지점을 매개변수로 주었기 때문에 가로 세로의 값을 구해야한다

 

가로의 길이는 x1 ~ x4 중에 최댓값에서 최소값을 뺀 값이며

세로의 길이는 y ~ yb4 중에 최댓갑에서 최소값을 뺀 값이라고 한다

 

매개변수의 좌표에서 최소값과 최댓값을 구하기 위해 4개의 변수를 만들고 비교하기 위한 x와 y의 값으로 초기화 시킨다

Math 클래스의 min , max 메서드를 이용하여 최소값과 최댓값을 비교하여 변수에 담아준다.

 

구해진 최소값과 최댓값을 가지고 아래의 공식으로 계산한다. 

가로 = maxX - minX

세로 = maxY - minY

사각형의 넓이 = 가로 x 세로

 

코드자체는 어렵지않은데 문제를 풀어나갈 수가 없다...ㅠㅠㅠ 

댓글