일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 코딩테스트
- Arrays
- 의존성관리
- 프로그래머스
- Dependency
- springboot
- mybatis
- maven
- spring scheduler
- codility
- 스프링 스케줄러
- java
- Spring Boot
- Spring Mail
- GOF
- Collections
- 스프링 부트
- Spring
- 스프링
- C++
- pair
- thymeleaf
- pom.xml
- @Scheduled
- 프로젝트 구조
- vuejs #vue #js #프론트엔드 #nodejs #클라이언트사이드 #템플릿엔진
- list
- 스프링 메일
- HashMap
- 스프링부트
- Today
- Total
Rooted In Develop
[Codility] Sorting - MaxProductOfThree / Java 본문
1. 문제
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–2020 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.
2. 코드
import java.util.*;
class Solution {
public int solution(int[] A) {
Arrays.sort(A);
int li = A.length - 1;
int num = A[li];
int leftNum = num * A[li - 1] * A[li - 2];
int rightNum = num * A[0] * A[1];
return Math.max(leftNum, rightNum);
}
}
'Algorithm Test > Java' 카테고리의 다른 글
[Codility] Stacks and Queues - Brackets / Java (0) | 2020.06.15 |
---|---|
[Codility] Sorting - Triangle / Java (0) | 2020.06.14 |
[Codility] Sorting - Distinct / Java (0) | 2020.06.14 |
[Codility] Prefix Sums - MinAvgTwoSlice / Java (0) | 2020.06.14 |
[Codility] Prefix Sums - GenomicRangeQuery / Java (0) | 2020.06.14 |