[LeetCode] Largest Triangle Area

아르당·2026년 2월 27일

LeetCode

목록 보기
174/213
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

X-Y 평면상의 점 배열 points[i] = [xi, yi]인 points가 주어졌을 때, 서로 다른 세 점으로 만들 수 있는 가장 큰 삼각형의 넓이를 반환해라. 실제 답에서 10^-5 이내의 오차 범위 내에 있는 답도 허용한다.

Example

#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

Constraints

  • 3 <= points.length <= 50
  • -50 <= xi, xy <= 50
  • 주어진 모든 점들은 고유하다.

Solved

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;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글