[백준][Kotlin] 1912 연속합

[백준][Kotlin] 1912 연속합

728x90

- https://www.acmicpc.net/problem/1912

풀이

1. 수열을 저장하는 배열을 선언한다.

2. 수열을 순환하면서 최대값을 저장하는 dp 배열을 선언한다.

3. 현재 입력되는 값과 이전 최대값과 현재 입력 값 중 최대 값을 저장한다.

4. 저장된 dp 배열에서 최대값을 구한다.

코드

import java.util.* fun main(args: Array) { val sc = Scanner(System.`in`) val n = sc.nextInt() val arr = Array(n) { sc.nextInt() } val dp = IntArray(n) dp[0] = arr[0] for (i in 1 until n) { dp[i] = max(dp[i - 1] + arr[i], arr[i]) } var result = Int.MIN_VALUE for (i in 0 until n) { if (result < dp[i]) { result = dp[i] } } println(result) } private fun max(a: Int, b: Int): Int { return if (a < b) b else a }

from http://jefflim-81.tistory.com/63 by ccl(A) rewrite - 2021-12-17 17:27:58