반응형
- 다른 사람 풀이
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 세로
코드자체는 어렵지않은데 문제를 풀어나갈 수가 없다...ㅠㅠㅠ
'프로그래머스 > [프로그래머스 - JAVA] Lv.0' 카테고리의 다른 글
[프로그래머스 - JAVA] 치킨 쿠폰 (0) | 2023.03.16 |
---|---|
[프로그래머스 - JAVA] 로그인 성공? (0) | 2023.03.16 |
[프로그래머스 - JAVA] 종이 자르기 (0) | 2023.03.15 |
[프로그래머스 - JAVA] 캐릭터의 좌표 (0) | 2023.03.15 |
[프로그래머스 - JAVA] 외계어 사전 (0) | 2023.03.15 |
댓글