
내 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
int n = Integer.parseInt(br.readLine());
double [] num = new double[n];
for(int i=0; i<n; i++)
num[i] = Double.parseDouble(br.readLine());
double max = -1;
for(int i=0; i<n; i++) {
max = Math.max(max, find(num, i));
}
System.out.printf("%.3f", max);
}
public static double find(double [] num, int x) {
double max = -1;
double tmp = 1;
for(int i=x; i<num.length; i++) { //순서대로 곱한 값을 구해보며 비교
tmp *= num[i];
max = Math.max(max, tmp);
}
return max;
}
}
참고한 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
double [] arr = new double[n+1];
double [] dp = new double[n+1];
double max = 0;
for(int i=1; i<=n; i++) {
arr[i] = Double.parseDouble(br.readLine());
dp[i] = Math.max(arr[i], dp[i-1]*arr[i]);
max = Math.max(max, dp[i]);
}
System.out.printf("%.3f", max);
}
}
2023-03-23