Algorithm/문제풀이_백준
Swift) 백준 2798번 (블랙잭)
Joahnee
2021. 8. 18. 11:46
요구능력 : 경우의수를 전부따지는 브루트포스 알고리즘에 대해 알고있느냐
코드설명 :
입력받은 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)")