요구능력 : 경우의수를 전부따지는 브루트포스 알고리즘에 대해 알고있느냐
코드설명 :
입력받은 n개의 수를 모두 더해보면서 m을 넘지않고, 현재 더한 3개의 수가 이전에 구한 sum보다 크다면,
이전에 구한 sum보다 m의 값에 가깝다는 의미이므로 이 때, sum변수에 넣도록 하였다.
후기 : 브루트포스라는 이름이 어려운 알고리즘인줄 알았는데 그냥 단순한 모든경우의수를 따져보는 알고리즘이었다..
let arr = readLine()!.split(separator: " ").map{ Int($0)! }
let n = arr[0]
let m = arr[1]
var suArr = readLine()!.split(separator: " ").map{Int($0)!}
var sum = 0
for i in 0..<n {
for j in i+1..<n {
for k in j+1..<n {
if suArr[i] + suArr[j] + suArr[k] <= m {
if suArr[i] + suArr[j] + suArr[k] > sum {
sum = suArr[i] + suArr[j] + suArr[k]
}
}
}
}
}
print("\(sum)")
'Algorithm > 문제풀이_백준' 카테고리의 다른 글
Swift) 백준 7568번 (덩치) (0) | 2021.08.19 |
---|---|
Swift) 백준 2231번 (분해합) (3) | 2021.08.18 |
Swift) 백준 11729번 (하노이 탑) (0) | 2021.08.17 |
Swift) 백준 1002번 (터렛) (0) | 2021.08.16 |
Swift) 백준 3053번 (택시 기하학) (0) | 2021.08.15 |
댓글