Weird 문제 질문드립니다....

  • tjtjdgur34
    tjtjdgur34

    동적계획법을 이용해서 문제를 해결하려고 하는데... 도저히 안되네요... 힌트 부탁드립니다...

    public static boolean isWeird(int total, int idx) {
    
        for(int i = idx - 1; i >= 0; i++) {
            int check = total - divisors[i];
    
            if(check == 0)
                return true;
            else {
                isWeird(check, idx-1);
            }
        }
        return false;
    }
    
    
    //main함수
    public static void main(String[] args) {
        ...
    
        if (sum <= input)
            System.out.println("weird");
        else {
            if(isWeird(input, count)) {
                System.out.println("not weird");
            } else {
                System.out.println("weird");
            }
        }
    }

    7년 전
1개의 댓글이 있습니다.
  • cosics
    cosics

    재귀함수 호출을 두 번 하셔서 한 칸씩 skip 하는 부분이 필요할 것 같습니다. 저렇게 재귀호출 하시면 인덱스가 순서대로만 변경되어서 인덱스가 순차적이지 않을 경우에는 대응이 안될 것 같습니다.


    7년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.