풀이 1 시간초과
func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64 {
// var answer:Int64 = -1
var sum: Int = 0
var result: Int = 0
for i in 1...count {
sum += price * i
}
if sum > money {
result = sum - money
} else if sum <= money {
return 0
}
return Int64(result)
}
solution(3,20,4)
풀이 2 - 등차수열 접근
❓ 등차수열(Arithmetic Sequence)
등차수열은 연속되는 항들 사이의 차이가 일정한 수열입니다. 일정한 차이를 '공차(common difference)'라고 합니다.
등차수열 공식 : Sn = n*(a1+an) / 2
price 배수로 이루어진 등차수열로 접근하여 n(n+1) / 2 price 이렇게 count의 갯수만큼 3의 배수를 합하여 sum에 할당하였습니다.
삼항연산자를 사용하여 sum이 money보다 큰 경우 ture일때 모자란 금액을 Int64로 변환하여 리턴하고 false일때는 0을 리턴합니다.
func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64 {
var sum: Int = 0
sum = count * (count + 1) / 2 * price
return sum > money ? Int64(sum - money) : 0
}
solution(3,20,4)