삐까냥의 파도타기

1912번) 연속합 본문

코딩/백준 알고리즘

1912번) 연속합

금손형아 2017. 10. 10. 12:36

문제 출처 : https://www.acmicpc.net/problem/1912



예제가 함정을 말해주지 않아서 까다로운 문제입니다.


함정을 파악할 수 있도록 예제를 수정하겠습니다.

"10 -4 5 7 9 7 -35 12 21 -1"를 입력하면 결과는 34가 나옵니다.

10 + (-4) + 5 + 7 + 9 + 7 의 결과값 34가 

12 + 21 의 결과값 33 보다 크기 때문입니다.


단순하게 숫자가 0보다 작을 경우에는 덧셈을 종료하는 것이 아니라,

"sum(n-1) + n항"과 "n항"의 값을 비교하면 됩니다.

배고파서 그런지 설명이 안되네요. 코드 보시죠.


import java.util.Scanner;

public class Q1912 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

int input = scanner.nextInt();

int max = scanner.nextInt();

int sum = max;

for ( int i = 1; i < input; i++ ) {

int temp = scanner.nextInt();

sum = sum + temp > temp ? sum + temp : temp;

max = max > sum ? max : sum;

}

System.out.println(max);

scanner.close();

}

}


'코딩 > 백준 알고리즘' 카테고리의 다른 글

10844번) 쉬운 계단 수  (0) 2017.10.11
1010번) 다리 놓기  (0) 2017.10.11
11726번) 2×n 타일링  (0) 2017.10.09
1932번) 숫자삼각형  (0) 2017.10.03
9095번) 1, 2, 3 더하기  (0) 2017.10.03