1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| import Foundation
func solution(_ users:[[Int]], _ emoticons:[Int]) -> [Int] {
var maxMoney = 0
var maxUserNumber = 0
let sales = [10,20,30,40]
func dfs(_ depth:Int, _ saleArr:[Int]){
if depth == emoticons.count {
var totalNumber = 0
var totalMoney = 0
for user in users{
var totalUserMoney = 0
for (index, saleIndex) in saleArr.enumerated(){
let salePercent = sales[saleIndex]
let emoticonPrice = emoticons[index]
if user[0] <= salePercent { totalUserMoney += Int(Double(emoticonPrice) * (Double(100 - salePercent) / 100)) }
}
if totalUserMoney < user[1]{
totalMoney += totalUserMoney
} else{
totalNumber += 1
}
}
if maxUserNumber < totalNumber {
maxUserNumber = totalNumber
maxMoney = totalMoney
} else if maxUserNumber == totalNumber && maxMoney < totalMoney{
maxMoney = totalMoney
}
} else{
for number in 0...3{
dfs(depth+1, saleArr+[number])
}
}
}
dfs(0,[])
return [maxUserNumber, maxMoney]
}
|