728x90
https://school.programmers.co.kr/learn/courses/30/lessons/82612
Code
import kotlin.math.*
class Solution {
fun solution(price: Int, money: Int, count: Int): Long = max((1 .. count).sum() * price.toLong() - money,0)
/*
fun solution(price: Int, money: Int, count: Int): Long{
val bill = (1 .. count).sum() * price.toLong()
return if (money < bill) bill - money else 0
}
*/
}
주석 처리된 코드가 내가 처음 작성한 코드다.
정직하게 1부터 count까지의 값을 더하고 거기에 price의 가격을 곱해 총 금액을 구하고 money와 비교해서 연산했다.
근데 생각을 해보니까 if문이 필요가 없었다.
money보다 bill이 클 때 bill - money를 return하고, 더 작다면 0을 return 한다.
그럼 0을 return할 때의 값을 보면 bill - money의 값은 0 이하다.
그렇기 때문에 두 값을 비교하여 더 큰 값을 return 하면 된다.
일종의 수학을 통해서 코드를 한층 간결하게 만들 수 있었다.
728x90