codility - MaxProductOfThree 정답 및 해설
뿌리튼튼 CS/Algorithm2017. 7. 12. 14:29
난이도 ★☆☆☆☆
문제 요약
입력받은 숫자들 중 3개를 뽑아서 곱했을 때 가장 큰 값을 리턴 |
힌트
정렬을 한 후 최대값끼리 곱한다. 단! 음수에 주의하여야 한다 (경우의 수 문제) |
이하는 코드입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public int solution(int[] A) { Arrays.sort(A); if (A[A.length - 1] < 0) { return A[A.length - 1] * A[A.length - 2] * A[A.length - 3]; } if (A[A.length - 2] < 0 || A[A.length - 3] < 0) { return A[A.length - 1] * A[0] * A[1]; } int p1 = A[A.length - 1] * A[A.length - 2] * A[A.length - 3]; int p2 = A[A.length - 1] * A[0] * A[1]; return p1 > p2 ? p1 : p2; } | cs |
'뿌리튼튼 CS > Algorithm' 카테고리의 다른 글
알고리즘의 복잡도란? (1. 공간 복잡도) (0) | 2017.07.28 |
---|---|
codility - Triangle 정답 및 해설 (0) | 2017.07.12 |
codility - Distinct 정답 및 해설 (0) | 2017.07.12 |
codility - MinAvgTwoSlice 정답 및 해설 (0) | 2017.06.09 |
codility - GenomicRangeQuery 정답 및 해설 (0) | 2017.06.09 |