-
[😭 leetcode] 976. Largest Perimeter TriangleAlgorithm/1일 1코테 2022. 10. 12. 11:57반응형
https://leetcode.com/problems/largest-perimeter-triangle/
삼각형의 세 변의 길이 합 중 가장 큰 값을 찾는 문제
easy라며... easy라며...!!!!
나의 시도...
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
초 심플함.. 그냥 큰 순으로 정렬하고 앞에서부터 쭉쭉 찾아서 삼각형인 경우를 리턴하면 됨 ^^
단순하게 생각하고 공부하자 공부~~~
반응형'Algorithm > 1일 1코테' 카테고리의 다른 글
[🥰 leetcode] 1328. Break a Palindrome (0) 2022.10.18 [🥰 leetcode] 53. Maximum Subarray (0) 2022.10.14 [😭 leetcode] 334. Increasing Triplet Subsequence (0) 2022.10.11 [🥰프로그래머스] 압축 (2018 KAKAO BLIND RECRUITMENT) (1) 2022.10.08 [🥰프로그래머스] 신고 결과 받기 [2022 KAKAO BLIND RECRUITMENT] (0) 2022.10.06