[LeetCode] Largest Perimeter Triangle

아르당·어제

LeetCode

목록 보기
210/213
post-thumbnail

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

Problem

정수 배열 nums가 주어졌을 때, 이 배열에 있는 세 변의 길이로 만들 수 있는 삼각형 중 가장 큰 둘레 길이를 반환해라. 만약 둘레 길이가 0이 아닌 삼각형을 만들 수 없다면 0을 반환해라.

Example

#1
Input: nums = [2, 1, 2]
Output: 5
Explanation: 세 변의 길이가 1, 2, 2인 삼각형을 만들 수 있다.

#2
Input: nums = [1, 2, 1, 10]
Output: 0
Explanantion:
1, 1, 2로 삼각형을 만들 수 없다.
1, 1, 10으로 삼각형을 만들 수 없다.
1, 2, 10으로 삼각형을 만들 수 없다.
세 변의 길이를 이용하여 둘레가 0이 아닌 삼각형을 만들 수 없으므로 0을 반환한다.

Constraints

  • 3 <= nums.length <= 10^4
  • 1 <= nums[i] <= 10^6

Solved

class Solution {
    public int largestPerimeter(int[] nums) {
        Arrays.sort(nums);

        for(int i = nums.length - 1; i >= 2; i--){
            if(nums[i - 1] + nums[i - 2] > nums[i]){
                return nums[i] + nums[i - 1] + nums[i - 2];
            }
        }

        return 0;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글