문제
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;
}
}
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] Lv.0 | 컨트롤 제트 | Java (0) | 2025.10.07 |
---|---|
[Programmers] Lv.0 | 배열 원소의 길이 | Java (0) | 2025.10.06 |
[Programmers] Lv.0 | 캐릭터의 좌표 | Java (0) | 2025.10.04 |
[Programmers] Lv.0 | 최댓값 만들기 (2) | Java (0) | 2025.10.03 |
[Programmers] Lv.0 | 다항식 더하기 | Java (0) | 2025.10.02 |
댓글