룬아님의 취중코딩

Codility 12번 MaxProductOfThree 본문

개발/알고리즘

Codility 12번 MaxProductOfThree

룬아님 2019. 8. 17. 13:53

MaxProductOfThree

 

 

A non-empty array A consisting of N integers is given. The product of triplet (P, Q, R) equates to A[P] * A[Q] * A[R] (0 ≤ P < Q < R < N).

For example, array A such that:

A[0] = -3 A[1] = 1 A[2] = 2 A[3] = -2 A[4] = 5 A[5] = 6

contains the following example triplets:

  • (0, 1, 2), product is −3 * 1 * 2 = −6
  • (1, 2, 4), product is 1 * 2 * 5 = 10
  • (2, 4, 5), product is 2 * 5 * 6 = 60

Your goal is to find the maximal product of any triplet.

Write a function:

class Solution { public int solution(int[] A); }

that, given a non-empty array A, returns the value of the maximal product of any triplet.

For example, given array A such that:

A[0] = -3 A[1] = 1 A[2] = 2 A[3] = -2 A[4] = 5 A[5] = 6

the function should return 60, as the product of triplet (2, 4, 5) is maximal.

Write an efficient algorithm for the following assumptions:

  • N is an integer within the range [3..100,000];
  • each element of array A is an integer within the range [−1,000..1,000].

Copyright 2009–2019 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.

 

import java.util.*;

class Solution {
    public int solution(int[] A) {
        // write your code in Java SE 8
        Arrays.sort(A);
        if(A[0] * A[1] * A[A.length -1] > A[A.length-3] * A[A.length-2] * A[A.length-1]){
            return A[0] * A[1] * A[A.length -1];
        }else{
            return A[A.length-3] * A[A.length-2] * A[A.length-1];
        }
    }
}

https://app.codility.com/demo/results/trainingC7HPFG-GPR/

반응형

'개발 > 알고리즘' 카테고리의 다른 글

Codlility 15번 Distinct  (0) 2019.08.26
Codility 10번 PassingCars  (0) 2019.08.17
Codility 11번 GenomicRangeQuery  (0) 2019.08.14
Codility 9번 MaxCounters  (0) 2019.08.12
Codility 7번 PermCheck  (0) 2019.08.12
Comments