Algorithm/1일 1코테
[😭 leetcode] 976. Largest Perimeter Triangle
대인보우
2022. 10. 12. 11:57
반응형
https://leetcode.com/problems/largest-perimeter-triangle/
Largest Perimeter Triangle - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
삼각형의 세 변의 길이 합 중 가장 큰 값을 찾는 문제
easy라며... easy라며...!!!!
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/035.gif)
나의 시도...
import itertools
class Solution:
def largestPerimeter(self, nums: List[int]) -> int:
nCr = itertools.combinations(nums, 3)
max_perimeter = 0
for n in nCr:
n = list(n)
n.sort(reverse=True)
if n[0] < n[1]+n[2]:
max_perimeter = sum(n[0:3])
return max_perimeter
생각의 플로우는 이랬다...
삼각형이 되기 위한 조건은 => 가장 큰 변의 길이가 나머지 두 변의 길이의 합보다 작아야함!
그러면
1) 리스트에서 3개씩 조합을 뽑는다.
2) 가장 큰 변이 맨 앞으로 오도록 정렬한다.
3) 3개의 조합이 삼각형이 되는 조건을 충족하면 max_perimeter(현재까지 가장 큰 세 변의 합)를 비교하여 값을 바꿔준다.
4) max_perimeter를 return 한다^^
예외케이스 나와서 탈락!
답
def largestPerimeter(self, nums: List[int]) -> int:
nums.sort(reverse=True)
for i in range(2, len(nums)):
if nums[i-2] < nums[i-1] + nums[i]:
return sum(nums[i-2:i+1])
return 0
초 심플함.. 그냥 큰 순으로 정렬하고 앞에서부터 쭉쭉 찾아서 삼각형인 경우를 리턴하면 됨 ^^
단순하게 생각하고 공부하자 공부~~~
반응형