[LeetCode] 976. Largest Perimeter Triangle

김민우·2022년 10월 12일
0

알고리즘

목록 보기
34/189

- Problem

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

- 결과

profile
Pay it forward.

0개의 댓글