-
(코딜리티) Lesson 6. [sorting] : MaxProductOfThree - pythonAlgorithm/코딜리티 2021. 1. 25. 18:45
문제 : app.codility.com/programmers/lessons/6-sorting/max_product_of_three/
문제해설
비어있지 않은 N개인 배열 A를 주어질 때, 3개를 곱하였을 때 가장 큰 값을 return하시오.
예를 들어,
A = [-3, 1, 2 -2, 5, 6]이 주어졌을 때, 2x5x6 = 60이 가장큰 값으로 60을 return합니다.
제한 사항
- N은 3~100,000사이
- A의 각 요소는 -1,000~1,000사이
코드
def solution(A): A = sorted(A) r = A[-1]*A[-2]*A[-3] if A[0] < 0 and A[1] < 0 and A[-1] > 0 : t = A[0]*A[1]*A[-1] if r < t: r = t return r
해설
A를 정렬 한 후 제일 마지막 3개를 뽑아서 return합니다. 하지만 -, -, +를 만날 경우 더 큰 값이 있을 수도 있기때문에 if문으로 비교 후 제일 큰 값을 return합니다.
'Algorithm > 코딜리티' 카테고리의 다른 글
(코딜리티) Lesson 6. [sorting] : triangle- python (0) 2021.01.26 (코딜리티) Lesson 6. [Sorting] : NumberOfDiscIntersections - python (0) 2021.01.25 (코딜리티) Lesson 6. [Sorting] : Distinct - python (0) 2021.01.25 (코딜리티) Lesson 5 : PassingCars (0) 2021.01.24 (코딜리티) Lesson 5 : MinAvgTwoSlice - Python (0) 2021.01.21 댓글