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.
먼저 sorting 후, 최대값을 가질 수 있는 두 경우만을 생각하면 된다.
import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
int tmp = 0;
int maxThree = 0;
Arrays.sort(A);
maxThree = A[A.length-1] * A[A.length-2] * A[A.length-3];
if((A[1] < 0) && (A[A.length-1] > 0)){
tmp = A[0] * A[1] * A[A.length-1];
if(maxThree < tmp){
maxThree = tmp;
}
}
return maxThree;
}
}
'Algorithm' 카테고리의 다른 글
[Codility] Triangle (0) | 2019.06.16 |
---|---|
[Codility] Distinct (0) | 2019.06.16 |
[Codility] CountDiv (0) | 2019.06.14 |
[Codility] MinAvgTwoSlice (0) | 2019.06.11 |
[Codility] GenomicRangeQuery (0) | 2019.06.02 |