[문제]
n개의 빈 콜라병을 가지고 있을 때, 누적합으로 몇개의 병을 받을 수 있나
[접근 방법]
그냥 문제 조건대로 구현한다.
풀이는 단순한 반복문과 재귀를 이용한 두 가지 방식으로 풀어봤다.
[반복문 코드]
class Solution {
fun solution(a: Int, b: Int, n: Int): Int {
var answer = 0
var cntOfEmptyBottle = n
while (cntOfEmptyBottle / a != 0) {
val cntOfGivenBottle = (cntOfEmptyBottle / a) * b
answer += cntOfGivenBottle
cntOfEmptyBottle = cntOfGivenBottle + (cntOfEmptyBottle % a)
}
return answer
}
}
[재귀 코드]
class Solution {
fun solution(a: Int, b: Int, n: Int): Int {
return recursion(a, b, n)
}
private fun recursion(a: Int, b: Int, n: Int): Int {
if (n / a == 0) return 0
return (n / a) * b + recursion(a, b, (n / a) * b + (n % a))
}
}