[백준] 10211번: Maximum Subarray - Kotlin[코틀린]

2024. 6. 14. 21:06·알고리즘/Baekjoon

문제

 

 

10211번: Maximum Subarray

크기 N인 정수형 배열 X가 있을 때, X의 부분 배열(X의 연속한 일부분) 중 각 원소의 합이 가장 큰 부분 배열을 찾는 문제이다.

www.acmicpc.net

 


풀이

 

 연속된 부분 수열의 합 중 최댓값을 구하는 전형적인 DP(Dynamic Programming) 문제이다. 입력받은 현재 값을 더해가며 최대 부분합을 갱신한다. 이때, 합이 음수라면 새로운 구간을 시작하면 된다. 

 


코드

 

fun main() {
    val sb = StringBuilder()
    repeat(readln().toInt()) {
        val num = readln().toInt()
        val arr = readln().split(' ').map { it.toInt() }
        val dp = IntArray(num)
        var max = arr[0]
        dp[0] = arr[0]
        
        for(i in 1 until num) {
            if(dp[i-1] < 0) dp[i - 1] = 0
            dp[i] = dp[i - 1] + arr[i]
            max = maxOf(max, dp[i])
        }

        sb.append("$max\n")
    }

    print(sb.toString())
}

 

'알고리즘 > Baekjoon' 카테고리의 다른 글

[백준] 13699번: 점화식 - Kotlin[코틀린]  (0) 2024.06.20
[백준] 1402번: 아무래도이문제는A번난이도인것같다 - Kotlin[코틀린]  (0) 2024.06.17
[백준] 2303번: 숫자 게임 - Kotlin[코틀린]  (0) 2024.06.13
[백준] 2422번: 한윤정이 이탈리아에서 아이스크림을 사먹는데 - Kotlin[코틀린]  (0) 2024.06.07
[백준] 21921번: 블로그 - Kotlin[코틀린]  (0) 2024.06.02
'알고리즘/Baekjoon' 카테고리의 다른 글
  • [백준] 13699번: 점화식 - Kotlin[코틀린]
  • [백준] 1402번: 아무래도이문제는A번난이도인것같다 - Kotlin[코틀린]
  • [백준] 2303번: 숫자 게임 - Kotlin[코틀린]
  • [백준] 2422번: 한윤정이 이탈리아에서 아이스크림을 사먹는데 - Kotlin[코틀린]
junghoooooon
junghoooooon
  • junghoooooon
    코드팁스
    junghoooooon
  • 전체
    오늘
    어제
    • 전체 (141)
      • 안드로이드 (0)
        • 코드팁스 (0)
      • 유니티 (0)
        • 코드팁스 (0)
      • 알고리즘 (139)
        • 알고리즘 (0)
        • Baekjoon (139)
      • GitHub (0)
      • 티스토리 (2)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      모듈러 곱셈 역원
      브루트포스
      정렬
      분할 정복
      dfs
      백트래킹
      DP
      MST
      재귀
      피보나치
      구현
      그리디
      티스토리
      BFS
      문자열
      투 포인터
      에라토스테네스의 체
      그래프이론
      큐
      수학
      우선순위 큐
      스택
      해시셋
      이분 탐색
      소수 판정
      누적 합
      프림
      유니온파인드
      그래프 탐색
      크루스칼
    • hELLO· Designed By정상우.v4.10.2
    junghoooooon
    [백준] 10211번: Maximum Subarray - Kotlin[코틀린]
    상단으로

    티스토리툴바