[programmers]level 1-不足金額の計算(lang:swift)


問題の説明
新しくできたアトラクションが人気で、行列が絶えません.このアトラクションの元の利用料はpriceoneで、N回目の利用であれば元の利用料のN倍を徴収します.つまり、1回目の利用料金が100であれば、2回目の利用料金は200、3回目の利用料金は300です.
count号アトラクションに乗る場合は、現在持っている金額に必要な金額を返すためのソルバを完了します.
ただし、金額が不足していない場合は、0を返してください.
せいげんじょうけん
アトラクション使用料価格:1≦price≦2500、価格は自然数
初期保有金額money:1≦money≦10000000、moneyは自然数
アトラクション利用回数count:1≦count≦2500、countは自然数
I/O例
price	money	count	result
3	20	4	10
I/O例説明
I/O例#1
4回の利用金額が3のアトラクションに乗りたいお客様が現在持っている金額が20であれば、必要なアトラクションの総利用金額は30(=3+6+9+12)で10未満なので、10を返却します.
注意事項
タスク言語はJava、JavaScript、Python 3、C++にのみ適用されます.
同じコードを提出する人が多い場合は、最初にコードを提出した人が賞品を受け取ることになります.
賛数が同じであれば、最初にコードを提出した人が賞品を受け取る.
=============================================
私が書いたコード
import Foundation

/*
  - price: 놀이기구의 원래 이용료
 */
func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{
    var tempMoney:Int64 = Int64(money)
    var tempPrice:Int64 = Int64(price)
    var tempCount:Int = count
    
    while(tempCount >= 2){
        tempMoney -= tempPrice
        tempPrice += Int64(price)
        
        tempCount -= 1
    }
    
    if tempMoney > tempPrice {
        return 0
    }
    return tempPrice-tempMoney
}
他者コード
import Foundation

func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{
    let totalPrice = price * (count * (count+1)/2)

    if money >= totalPrice {
        return 0
    }

    return Int64(totalPrice - money)
}