길이가 양수인 배열 num이 있다고 가정하고 해당 배열에서 세 개의 값을 가져와 삼각형의 가장 큰 둘레를 찾아야 합니다. 0이 아닌 면적의 삼각형을 만드는 것이 불가능하면 0을 반환합니다.
따라서 입력이 [8,3,6,4,2,5]와 같으면 출력은 19가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
목록 번호 정렬
-
a :=숫자에서 마지막 요소 삭제
-
b :=숫자에서 마지막 요소 삭제
-
c :=숫자에서 마지막 요소 삭제
-
동안 b+c <=a, 수행
-
숫자가 0이 아닌 경우
-
0 반환
-
-
a :=b
-
b :=c
-
c :=숫자에서 마지막 요소 삭제
-
-
+b+c를 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
def solve(nums): nums.sort() a, b, c = nums.pop(), nums.pop(), nums.pop() while b+c<=a: if not nums: return 0 a, b, c = b, c, nums.pop() return a+b+c nums = [8,3,6,4,2,5] print(solve(nums))
입력
[8,3,6,4,2,5]
출력
19