두 정수를 받아서 두 정수 사이에 속한 모든 정수의 합을 리턴한다
두 정수를 a와 b라고 했을 때 a가 b보다 작거나 같은 경우 a부터 b까지 차례대로 더하고 리턴
a가 b보다 클 경우 b부터 a까지 차례대로 더하고 리턴
fun solution(a: Int, b: Int): Long {
return when (a <= b) {
true -> (a..b).fold(0L, {total, next -> total + next})
else -> (b..a).fold(0L, {total, next -> total + next})
}
}
문제 자체는 쉬운데 어떻게 하면 좀 더 간결하게 풀 수 있을까 고민을 좀 했다.
변수 할당을 하지 않고 최대한 코틀린 문법을 활용해서 풀어보았다.
fold는 처음 써봤는데 여러모로 유용한 듯