문제를 풀어보자..
부족한 금액 계산하기
class Solution {
fun solution(price: Int, money: Int, count: Int): Long =
(1..count).foldIndexed(0L) { idx, acc, i ->
acc + (price * i)
}.minus(money).let {
if(it < 0) 0 else it
}
}
처음 금액에 N배가 되어 증가하는 풀이이다.
금액이 부족하지 않으면, 0을 반환하는 메서드이다.
이 풀이는 아래 코드가 더 심플해 보여서 가져왔다.
//부족한 금액 계산하기
class CalculateTheShortfall {
fun solution(price: Int, money: Int, count: Int): Long =
(1..count).sumOf { it * price.toLong() }.let { if (money > it) 0 else it - money }
}
sumOf 메서드를 통해 계산을 통해 나온 값의 함을 반환하여,
계산하였다.
직사각형 별 찍기
//직사각형 별찍기
class RectangularStar {
fun main(args: Array<String>) {
val (a, b) = readLine()!!.split(' ').map(String::toInt)
repeat(b) {
repeat(a) { print("*") }
println()
}
}
}
예전에 백준 문제 초반에 풀었을 때 비슷한 문제가 나온 걸로 기억이 난다.
print과 줄 바꿈 해주는 println을 응용 사용하여 문제를 해결하였다.