Codility Java MaxProductOfThree

업데이트:

문제

Link

코드

// you can also use imports, for example:
// 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) {
    Arrays.sort(A);
    // The initial value is set to a value greater than 3.
    int result = A[A.length - 3] * A[A.length - 2] * A[A.length - 1];
    // Check if the two smallest values are negative and the largest value is positive.
    if (A[0] < 0 && A[1] < 0 && A[A.length - 1] > 0) {
      int temp = A[0] * A[1] * A[A.length - 1];
      if (result < temp) {
        result = temp;
      }
    }
    return result;
  }
}

설명

  1. 주어진 배열 A를 Arrays 클래스를 활용하여 오름차순 정렬한다.
  2. 기본 최대값은 정렬된 배열 A의 최대 3개의 값으로 한다.
  3. 만일, 가장 낮은 두 값이 음수이고 가장 큰 값이 양수인 경우에는 최대값을 저장한 result와 비교하여 최대값을 다시 설정한다.
  4. 최대값을 저장한 result를 주어진 문제의 결과로 반환한다.

결과

Link

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기