길이가 양수인 배열 A가 있다고 가정하고 이 길이 중 3개로 구성된 면적이 0이 아닌 삼각형의 가장 큰 둘레를 찾아야 합니다. 0이 아닌 면적의 삼각형을 만드는 것이 불가능하면 0을 반환합니다.
따라서 입력이 [3,6,2,3]과 같으면 출력은 8이 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 목록 A 정렬
- a :=A에서 마지막 요소 삭제
- b :=A에서 마지막 요소 삭제
- c :=A에서 마지막 요소 삭제
- b+c <=동안, do
- A가 0이 아니면
- 0을 반환
- a :=b
- b :=c
- c :=A에서 마지막 요소 삭제
- A가 0이 아니면
- a+b+c를 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class 솔루션:def maximumPerimeter(self, A):A.sort() a, b, c =A.pop(), A.pop(), A.pop() while b+c<=a:A가 아닌 경우:0 반환 a, b, c =b, c, A.pop() return a+b+cob =Solution()print(ob.largestPerimeter([3,6,2,3]))사전>입력
[3,6,2,3]출력
8