링크 : https://app.codility.com/programmers/lessons/6-sorting/max_product_of_three/
Solution
정답률 : 100%
시간복잡도 : O(N * log(N))
우선 배열 A를 오름차순으로 정렬한다.
그리고 여러가지 경우의 수 중 최대값을 구하는 방법은 다음과 같다.
- 양수 * 양수 * 양수 : 양수 중 절대값이 가장 큰 3개 곱하기 (마지막 index 3개 곱하기)
- 양수 * 양수 * 음수 : 이 경우가 최대값이 되려면 배열의 엘리먼트가 3개일 때 뿐이므로, 고려하지 않아도 됨
- 양수 * 음수 * 음수 : 절대값이 가장 큰 음수 2개와 절대값이 가장 큰 양수 곱하기
- 음수 * 음수 * 음수 : 절대값이 가장 작은 음수 3개 곱하기 (마지막 index 3개 곱하기)
function solution(A) {
A.sort((a,b)=>a-b);
const m = A[A.length-1] * A[A.length-2] * A[A.length-3];
const n = A[0] * A [1] * A[A.length-1];
return Math.max(n, m);
}
반응형
'프로그래밍 > 알고리즘, 프로그래밍 언어' 카테고리의 다른 글
[코딩테스트] identical characters (JavaScript) (0) | 2022.02.03 |
---|---|
[코딩테스트] rowBikesOut (JavaScript) (0) | 2022.02.03 |
[코딩테스트] Codility 5-3 GenomicRangeQuery (JavaScript) (0) | 2022.01.27 |
[코딩테스트] Codility 5-4 MinAvgTwoSlice (JavaScript) - 평균의 수학적 특성 활용 (0) | 2022.01.26 |
[코딩테스트] Codility 5-1 PassingCars (JavaScript) (0) | 2022.01.26 |
댓글