Written by
java-style
on
on
[백준][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