[프로그래머스] 삼총사

fsm12·2023년 7월 21일
0

프로그래머스

목록 보기
42/57
post-thumbnail

문제링크

문제 이해

[ 입력형태 / 조건 ]

number
한국중학교 학생들의 번호를 나타내는 정수 배열 | [-2, 3, 0, 2, -5] | 3 ≤ number의 길이 ≤ 13, -1,000 ≤ number의 각 원소 ≤ 1,000, 서로 다른 학생의 정수 번호가 같을 수 있음

[ 문제 ]

학생들 중 삼총사를 만들 수 있는 방법의 수를 return

[ 풀이 ]

조합을 이용해서 3개의 합이 0이 되면 ans 증가



코드

> [성공] 1차 시도 : 조합

  • 생각한 풀이 그대로 구현
class Solution {
    public int solution(int[] number) {
        return nCr(-1,0,0,number);
    }
    
    public static int nCr(int start, int depth, int sum, int[] number){
        if(depth==3){
            if(sum == 0)
                return 1;
            return 0;
        }
        
        int ans = 0;
        for(int i=start+1; i<number.length; i++){
            ans += nCr(i, depth+1, sum+number[i], number);
        }
        return ans;
    }
}



0개의 댓글