문제 소개
문제 풀이
깊이우선탐색(dfs)을 활용하여 최댓값을 출력하였다.
import Foundation
let n = Int(readLine()!)!
let weights = readLine()!.split(separator: " ").map { Int($0)! }
var maxValue = 0
func dfs(_ current: Int, _ weights: [Int]) {
if weights.count == 2 {
maxValue = max(maxValue, current)
}
for i in 1..<weights.count-1 {
var newWeights = weights
newWeights.remove(at: i)
dfs(current + weights[i-1] * weights[i+1], newWeights)
}
}
dfs(0, weights)
print(maxValue)
'→ Problems' 카테고리의 다른 글
[Algorithm] 백준 - 9663번 N-Queen (Swift) (0) | 2024.06.03 |
---|---|
[Algorithm] 백준 - 1080번 행렬 (Swift) (0) | 2024.06.02 |
[Algorithm] 백준 - 16197번 두 동전 (Swift) (0) | 2024.05.30 |
[Algorithm] 백준 - 1182번 부분수열의 합 (Swift) (0) | 2024.05.29 |
[Algorithm] 백준 - 14888번 연산자 끼워넣기 (Swift) (1) | 2024.05.29 |