문제: https://www.acmicpc.net/problem/1932
코드
import Foundation
let N = Int(readLine()!)!
var dp = [[0, 0]]
for _ in 0..<N {
dp.append(readLine()!.split(separator: " ").map { Int($0)! })
}
for i in 1..<dp.count {
for j in 0..<dp[i].count {
if j == 0 { // 맨 왼쪽거는
dp[i][j] = dp[i][j] + dp[i - 1][j]
} else if j == dp[i].count - 1 { // 맨 오른쪽 거
dp[i][j] = dp[i][j] + dp[i - 1][j - 1]
} else {
dp[i][j] = max(dp[i][j] + dp[i - 1][j], dp[i][j] + dp[i - 1][j - 1])
}
}
}
//print(dp)
var result = dp[N].max()!
print(result)
'알고리즘' 카테고리의 다른 글
[Swift] 힙 코드 (0) | 2022.02.07 |
---|---|
[Swift] 백준 - 플로이드 (0) | 2022.02.07 |
[Swift] 순열 조합 (0) | 2022.02.03 |
[Swift] 백준 - 부분 수열의 합 (0) | 2022.02.03 |
[Swift] 프로그래머스 - 카카오 가사 검색 (0) | 2022.01.25 |
댓글