976. Largest Perimeter Triangle
Given an integer array nums, return the largest perimeter of a triangle with a non-zero area, formed from three of these lengths. If it is impossible to form any triangle of a non-zero area, return 0.
Example 1:
Input: nums = [2,1,2]
Output: 5
Example 2:
Input: nums = [1,2,1]
Output: 0
Constraints:
3 <= nums.length <= 104
1 <= nums[i] <= 106
가장 긴 둘레의 삼각형을 구하여 그 둘레를 반환하는 문제이다.
Input으로는 변의 길이가 주어진다.
삼각형 한 변의 길이 < 나머지 두 변 길이의 합
만 안다면 충분히 풀 수 있는 문제이다.
class Solution:
def largestPerimeter(self, nums: List[int]) -> int:
nums.sort()
while len(nums) > 2:
if nums[-1] < nums[-2] + nums[-3]:
return nums[-1] + nums[-2] + nums[-3]
nums.pop()
return 0