[ 프로그래머스 ] #131705 : 삼총사 - JAVA

🔗삼총사


class Solution {
    // n 중에 3명을 뽑아서 0이 되는 경우의 수를 구해라
    public int solution(int[] number) {
        int n= number.length;
        int answer=0;
        for(int i=0;i<n-2;i++){
            boolean [] visited=new boolean[n];
            visited[i]=true;
            answer += iterate(number[i], visited, 1, i, number);

        }
        return answer;

    }
    private int iterate(int remain, boolean [] visited, int visitCnt, int curIndex, int[]number){
          if (visitCnt == 3) {
            return (remain == 0) ? 1 : 0;
        }

        int cnt=0;
        for(int i=curIndex+1 ; i< number.length;i++){
            if(!visited[i]){
                visited[i] = true;

                cnt+= iterate(remain+number[i], visited,visitCnt+1, i ,number);
                visited[i]=false;

            }
        }
        return cnt;
    }
}