[BOJ 2670] 연속부분최대곱 (Java, DP)알고리즘/동적 프로그래밍2023. 6. 28. 23:12
Table of Contents
반응형
문제 링크
https://www.acmicpc.net/problem/2670
문제 풀이
- 시간복잡도 O(N)
- DP 배열의 경우 이전 값과 곱한 경우와 자기 자신과 비교했을 때 더 큰 값을 갱신
1 | 2 | 3 | 4 | 5 |
1.1 | 0.7 | 1.3 | 0.9 | 1.4 |
1.1 | 0.77 | 1.3 | 1.117 | 1.638 |
*참고. 자바 소수점 처리
제출 코드
import java.util.*;
import java.io.*;
public class Main {
static int N;
static double[] DATA, DP;
static void input() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
DATA = new double[N];
for(int i = 0; i < N; i++) {
DATA[i] = Double.parseDouble(br.readLine());
}
DP = new double[N];
}
static void pro() {
DP[0] = DATA[0];
for(int i = 1; i < N; i++) {
DP[i] = Math.max(DATA[i], DP[i - 1] * DATA[i]);
}
System.out.printf("%.3f", Arrays.stream(DP).max().getAsDouble());
}
public static void main(String[] args) throws Exception {
input();
pro();
}
}
반응형
'알고리즘 > 동적 프로그래밍' 카테고리의 다른 글
[BOJ 2156] 포도주 시식(Java, DP) (0) | 2023.06.30 |
---|---|
[BOJ 2302] 극장 좌석 (Java, DP) (0) | 2023.06.29 |
[BOJ 1904] 01타일 (Java, DP) (0) | 2023.06.28 |
[BOJ 1003] 피보나치 함수 (Java, DP) (0) | 2023.06.28 |
[백준 10844] 쉬운 계단 수 (node.js) (0) | 2023.05.25 |
@leejinwoo1126 :: 천천히 하나씩
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!