본문 바로가기

프로그래머스(Java)/Level 0

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

728x90

코드 힌트

좌표 분석

  • 주어진 점들의 좌표를 통해, 최소 x값 (x1)과 최대 x값 (x2), 최소 y값 (y1)과 최대 y값 (y2)을 찾습니다.
  • x1, x2, y1, y2는 각각 사각형의 왼쪽, 오른쪽, 아래쪽, 위쪽 경계가 됩니다.

사각형의 넓이 계산

  • 사각형의 넓이는 (x2 - x1)과 (y2 - y1)를 곱하여 구합니다.
  • 이 값은 좌표 배열에서 가장 큰 x좌표와 가장 작은 x좌표의 차이, 그리고 가장 큰 y좌표와 가장 작은 y좌표의 차이를 사용하여 사각형의 넓이를 계산하는 것입니다.

 


정답은 더보기 클릭

더보기
class Solution {
    public int solution(int[][] dots) {
        // 초기 값으로 최대값과 최소값을 설정
        int x1 = Integer.MAX_VALUE; // 최소 x값 (사각형의 왼쪽 경계)
        int x2 = Integer.MIN_VALUE; // 최대 x값 (사각형의 오른쪽 경계)
        
        int y1 = Integer.MAX_VALUE; // 최소 y값 (사각형의 아래쪽 경계)
        int y2 = Integer.MIN_VALUE; // 최대 y값 (사각형의 위쪽 경계)
        
        // 주어진 좌표 배열을 순회하며 경계값 업데이트
        for (int i = 0; i < dots.length; i++) {
            // 현재 점의 x 좌표와 y 좌표를 확인
            // x의 최소값을 찾기
            if (x1 > dots[i][0]) x1 = dots[i][0];
            // x의 최대값을 찾기
            if (x2 < dots[i][0]) x2 = dots[i][0];
            // y의 최소값을 찾기
            if (y1 > dots[i][1]) y1 = dots[i][1];
            // y의 최대값을 찾기
            if (y2 < dots[i][1]) y2 = dots[i][1];
        }
        
        // 사각형의 넓이를 계산하여 반환
        return (x2 - x1) * (y2 - y1);
    }
}
728x90