백준_설탕배달

hankyulee·2021년 10월 4일
0

Swift coding test 준비

목록 보기
10/57
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등 하신분의 코드에비해 길다.

  • stride 에서 to, through의 차이.

아래는 : https://www.acmicpc.net/source/24374368

0개의 댓글