개발/알고리즘

[codility] MaxProductOfThree

ny0011 2021. 2. 19. 12:00
반응형

app.codility.com/programmers/lessons/6-sorting/max_product_of_three/

 

MaxProductOfThree coding task - Learn to Code - Codility

Maximize A[P] * A[Q] * A[R] for any triplet (P, Q, R).

app.codility.com

원소 3개를 뽑아서 곱했을 때 가장 큰 값을 출력

-> 음수*음수*양수/ 양수*양수*양수 두가지 경우가 있다

sorting을 한번 해주고

음수가 2개 이상일 때 음수*음수*양수 와 양수*양수*양수 중 큰 값이 답

나머지는 제일 큰 양수의 곱이 답

def solution(A):
    # write your code in Python 3.6
    a = sorted(A)
    if a[0] < 0 and a[1] < 0:
        return max(a[0]*a[1]*a[-1], a[-1]*a[-2]*a[-3])
    else:
        return a[-1]*a[-2]*a[-3]