320x100
문제 : https://leetcode.com/problems/largest-perimeter-triangle/
정수 배열 nums가 주어질 때, 이 길이 중 3개로 면적이 0보다 큰 삼각형을 만들 때, 이들 삼각형들 중 가장 큰 둘레를 구하라.
삼각형을 만들 수 없는 경우 0을 반환하라.
면적이 0보다 큰 삼각형을 만드는 경우는, 길이가 (a <= b <= c)일 때, a + b > c 여야 한다.
둘레가 가장 큰 경우를 구해야하므로 가장 큰 정수들을 고를수록 좋다.
그리고 c가 고정되어 있을 때, 가능한 나머지 정수들 중 가장 큰 정수들인 a, b가 a + b > c 조건을 만족할 수 없다면 다른 정수들도 해당 조건을 만족할 수 없다.
따라서, nums 배열을 정렬한 뒤, 가장 큰 정수들부터 a, b, c를 선택한 뒤 a + b > c를 만족하는 경우가 나오면 a + b + c가 정답이 된다.
시간복잡도는 O(NlogN).
320x100
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
[Leetcode] 210. Course Schedule II (0) | 2021.12.23 |
---|---|
[Leetcode] 1103. Distribute Candies to People (0) | 2021.12.21 |
[Leetcode] 902. Numbers At Most N Given Digit Set (0) | 2021.12.19 |
[Leetcode] 147. Insertion Sort List (0) | 2021.12.15 |
[Leetcode] 1446. Consecutive Characters (0) | 2021.12.13 |
댓글