업데이트 :: 2018.08.21
문제
Maximize A[P] * A[Q] * A[R] for any triplet (P, Q, R).
코드
1차 풀이
import java.util.*; class Solution { public int solution(int[] A) { // 3개의 요소의 곱이 가장 큰것 // (-)가 3개일때 => (-) // (-)가 2개일때 => (+) // (-)가 1개일때 => (-) // (-)가 0개일때 => (+) Arrays.sort(A); if(A[0] * A[1] > 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]; } } }
2차 풀이
import java.util.*; class Solution { public int solution(int[] A) { // 3개의 요소의 곱이 가장 큰것 // (-)가 3개일때 => (-) // (-)가 2개일때 => (+) // (-)가 1개일때 => (-) // (-)가 0개일때 => (+) Arrays.sort(A); // [ -4, -3, -2, -1, 0, 1, 2, 3, 4 ] // == 전방 2개 && 후방 1개 vs 후방 3개 == int caseA = A[0] * A[1] * A[A.length-1]; int caseB = A[A.length-3] * A[A.length-2] * A[A.length-1]; return (caseA > caseB) ? caseA : caseB; } }
결과
1차 66%
- 정확 : 50%
- 성능 : 80%
2차 100%
- 정확 : 100%
- 성능 : 100%
Created by MoonsCoding
e-mail :: jm921106@gmail.com
반응형
'CS > 코딜리티' 카테고리의 다른 글
문제 // Codility // Sorting // NumberOfDiscIntersections // (성능부족) (0) | 2018.08.21 |
---|---|
문제 // Codility // Sorting // Triangle (0) | 2018.08.21 |
문제 // Codility // Sorting // Distinct (0) | 2018.08.21 |
문제 // Codility // Prefix Sum // MinAvgTwoSlice // (성능부족) (0) | 2018.08.21 |
문제 // Codility // Prefix Sum // GenoricRangeQuery // (성능부족) (0) | 2018.08.20 |