Where who wants to meet someone
부족한 금액 계산하기 본문
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/82612
내 답안 / 다른 사람들의 답안
import Foundation
func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{
let usageFee = (1...count).map { $0 * price }.reduce(0, +) - money
return usageFee < 0 ? 0 : Int64(usageFee)
}
- 횟수만큼 곱한 값들을 더한 것이 이용금액이기 때문에 그 값에서 money를 뺀 값을 가지고 결과를 도출할 수 있었다.
// 풀이 1
import Foundation
func solution(_ price:Int, _ money:Int, _ count:Int) -> Int{
return max((count + 1) * count / 2 * price - money , 0)
}
// 풀이 2
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)
}
- (count * (count + 1) / 2) 는 1부터 count까지의 합이고 여기에 price를 곱하면 총 이용금액이 됨을 알 수 있었다.
점수: +5
'프로그래머스 알고리즘 문제 기록 > Lv. 1' 카테고리의 다른 글
행렬의 덧셈 (0) | 2024.05.19 |
---|---|
문자열 다루기 기본 (0) | 2024.05.16 |
문자열 내림차순으로 배치하기 (0) | 2024.05.16 |
약수의 개수와 덧셈 (0) | 2024.05.16 |
내적 (0) | 2024.05.15 |