백준 2670 연속부분최대곱 [Java]

빨대씹는버릇있음·2023년 3월 23일

백준 실버

목록 보기
11/25

내 코드

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

0개의 댓글