func recursive(n:Int)->Int{
switch n {
case 0 : return 0
case 1,2,4 : return -1
case 3 : return 1
case 5 : return 1
default : ()
}
//1
var divide5 = n / 5 //4
var residual5 = n % 5
//4
for index in stride(from: divide5, through: 0, by: -1){
residual5 = n - (5*index) //4
if index == 0 {
if residual5 % 3 == 0{
return n / 3
}
else {return -1}
}
var recursiveValue = recursive(n: residual5)
if recursiveValue == -1 {
continue
}
else if recursiveValue != -1{
return index + recursiveValue
}
}
return -1
}
리커시브를 적용하기 위해 최대한 리커시브를 사용하였다. 1등 하신분의 코드에비해 길다.