문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
X-Y 평면상의 점 배열 points[i] = [xi, yi]인 points가 주어졌을 때, 서로 다른 세 점으로 만들 수 있는 가장 큰 삼각형의 넓이를 반환해라. 실제 답에서 10^-5 이내의 오차 범위 내에 있는 답도 허용한다.
#1
Input: points = [[0, 0], [0, 1], [1, 0], [0, 2], [2, 0]]
Output: 2.00000
Explanation: 다섯 개의 점이 나와 있다. 빨간색 삼각형이 가장 크다.
#2
Input: points = [[1,0], [0, 0], [0, 1]]
Output: 0.50000
class Solution {
public double largestTriangleArea(int[][] points) {
double maxArea = 0;
int length = points.length;
for(int i = 0; i < length; i++){
for(int j = i + 1; j < length; j++){
for(int k = j + 1; k < length; k++){
int x1 = points[i][0];
int y1 = points[i][1];
int x2 = points[j][0];
int y2 = points[j][1];
int x3 = points[k][0];
int y3 = points[k][1];
double area = 0.5 * Math.abs(
x1 * (y2 - y3) +
x2 * (y3 - y1) +
x3 * (y1 - y2)
);
maxArea = Math.max(maxArea, area);
}
}
}
return maxArea;
}
}