본문 바로가기
Algorithm/Programmers

[Programmers] Lv.0 | 직사각형 넓이 구하기 | Java

by unknownomad 2025. 10. 5.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/120860

 

풀이

class Solution {
    public int solution(int[][] dots) {
        // 첫 번째 점의 x, y 좌표를 기준으로 초기값 설정
        int minX = dots[0][0]; // x 좌표의 최솟값
        int maxX = dots[0][0]; // x 좌표의 최댓값
        int minY = dots[0][1]; // y 좌표의 최솟값
        int maxY = dots[0][1]; // y 좌표의 최댓값

        // 두 번째 점부터 나머지 좌표들을 확인하면서 최솟값/최댓값 갱신
        for (int i = 1; i < dots.length; i++) {
            int x = dots[i][0]; // 현재 점의 x 좌표
            int y = dots[i][1]; // 현재 점의 y 좌표

            // x 좌표 최솟값/최댓값 갱신
            if (x < minX) minX = x;
            if (x > maxX) maxX = x;

            // y 좌표 최솟값/최댓값 갱신
            if (y < minY) minY = y;
            if (y > maxY) maxY = y;
        }

        // 가로 길이 = x 좌표의 최댓값 - 최솟값
        int width = maxX - minX;

        // 세로 길이 = y 좌표의 최댓값 - 최솟값
        int height = maxY - minY;

        // 직사각형 넓이 = 가로 × 세로
        return width * height;
    }
}

댓글