https://www.acmicpc.net/problem/1912
1912번: 연속합
첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.
www.acmicpc.net
- n개의 정수로 이루어진 임의의 수열이 주어짐
- 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 함
- 단, 수는 한 개 이상 선택해야 함
ex)
10,-4,3,1,5,6,-35,12,21,-1이라는 수열
정답은 12+21인 33
문제 풀이
[백준/BOJ] 1912번 연속합 (C/C++) (tistory.com)
[백준/BOJ] 1912번 연속합 (C/C++)
백준 온라인 저지(BOJ) 1912번 연속합 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다
rightbellboy.tistory.com
3,5,6,-35,12,21,-1
- 1번까지의 연속합의 최대값은 [1번째 값(3)]인 3 (3을 memo[ ]에 기록)
- 2번까지의 연속합의 최대값은 [직전에 기억한 최대값(3) + 2번째 값(5)]인 8 (8을 memo[ ]에 기록 )
- 3번까지의 연속합의 최대값은 [직전에 기억한 최대값(8) + 3번째 값(6)]인 14 (14를 memo[ ]에 기록 )
- 4번까지의 연속합의 최대값은 [직전에 기억한 최대값(14) ]인 14
(직전 최대 (14) + 4번째 값(-35)인 -21을 memo[ ]에 기록)
- 5번까지의 연속합의 최대값은 [5번 값(12)]인 12
(12을 memo[ ]에 기록 )
- 6번까지의 연속합의 최대값은 [직전에 기억한 최대값(12) + 6번째 값(21)]인 33
(33을 memo[ ]에 기록 )
- 7번까지의 연속합의 최대값은 [직전에 기억된 최대값(33) + 7번째 값(-1)]인 32
n번까지의 연속합의 최대값은 Math.max( [n-1번까지의 최대값 + n번 값], [n번값])
정답
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main
{
static int max;
static int memo[] = new int[100000];
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
int input[] = new int[n];
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i=0; i<input.length; i++)
{
input[i] = Integer.parseInt(st.nextToken());
}
max = input[0];
memo[0] = input[0];
for(int i=1; i<n;++i)
{
memo[i] = Math.max(memo[i-1]+input[i], input[i]);
max = Math.max(memo[i],max);
}
bw.write(max+"");
bw.flush();
bw.close();
}
}
'Java > 백준' 카테고리의 다른 글
[JAVA] 백준 2579 계단 오르기 (0) | 2024.02.27 |
---|---|
[JAVA] 백준 1932 정수 삼각형 (1) | 2024.02.27 |
[JAVA] 백준 9461 파토반 수열 (0) | 2024.02.26 |
[JAVA] 백준 1904 01타일 (0) | 2024.02.26 |
[JAVA] 백준 9184 신나는 함수 실행 (0) | 2024.02.26 |