let line = Int(readLine()!)!
var arr = [[Int]]()
for _ in 0..<line {
arr.append(readLine()!.split(separator: " ").map{Int(String($0))!})
}
for i in 1..<line {
for j in 0..<i+1 {
if j == 0 {
arr[i][j] += arr[i-1][j]
} else if j == i {
arr[i][j] += arr[i-1][j-1]
} else {
arr[i][j] += max(arr[i-1][j-1], arr[i-1][j])
}
}
}
print(arr[line-1].max()!)
dp 문제로
삼각형을 배열에 먼저 입력받은 다음, bottom-up 방식으로 합이 최대가 되는 경로를 배열에 저장함
'알고리즘문풀 with SWIFT > Baekjoon' 카테고리의 다른 글
swift ) 백준 1371 - 가장 많은 글자 (0) | 2022.05.13 |
---|---|
swift ) 백준 1149 - RGB거리 feat.cache (0) | 2022.05.11 |
swift ) 백준 2747 - 피보나치 수 (0) | 2022.05.10 |
swift ) 백준 9095 - 1,2,3 더하기 (0) | 2022.05.10 |
swift ) 백준 1676 - 팩토리얼 0의 개수 (0) | 2022.04.29 |