반응형
○
다이나믹 프로그래밍, 누적 합 Silver4
백준 10211번 Maximum Subarray
69104KB 12ms
let t = Int(readLine()!)!
for _ in 0..<t {
let n = Int(readLine()!)!
let nums = readLine()!.split(separator: " ").compactMap { Int($0) }
var (sum, ans) = (0, nums[0])
for num in nums {
sum = max(num, sum + num)
ans = max(sum, ans)
}
print(ans)
}
처음에 ans 변수 초기화해줄 때,
배열 X의 모든 인자가 음수일 수도 있는 상황을 대비하여 0 이 아니라 반드시 nums[0] 으로 값을 초기화해주어야 한다.
728x90
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[Swift 알고리즘] 백준 2559 수열 (0) | 2023.04.04 |
---|---|
[Swift 알고리즘] 백준 11659 구간 합 구하기 4 (0) | 2023.04.03 |
[Swift 알고리즘] 백준 1966 프린터 큐 (0) | 2023.03.30 |
[Swift 알고리즘] 백준 11866 요세푸스 문제 (0) | 2023.03.28 |
[Swift 알고리즘] 백준 2164 카드2 (0) | 2023.03.28 |