코테/프로그래머스

[프로그래머스/Lv. 0] 구슬을 나누는 경우의 수

imname1am 2023. 2. 17. 10:39
반응형

내 코드 (틀림)

class Solution {
    public int solution(int balls, int share) {
        int answer = 0;
        
        answer = factorial(balls) / (factorial(share) * factorial(balls-share));
        
        return answer;
    }
    
    public static int factorial(int num) {
        if(num == 1) return 1;
        else         return num * factorial(num - 1);
    }
}

그냥 힌트에 써있는 공식 일단 그대로.. 팩토리얼을 이용해서 한 번 써봤다..

 

[JAVA] 자바 재귀호출과 팩토리얼 함수

재귀호출 재귀호출이란 함수 내부에서 해당 함수가 다시 호출되는 것을 의미합니다. 이러한 호출은 자기자신을 계속호출하기 때문에 끝없이 반복될 수 있으며 반드시 재귀호출을 중단하도록

mozi.tistory.com

 

경우의 수(5) - 순열.조합 기호에 관련한 성질 소개

지난번에 초딩 동화책까지 들먹이면서 세 가지 수학 기호를 소개했는데, 그 3가지 기호는    ! (...

blog.naver.com

 

 

도무지 안 되겠어서 조합을 이용해보기로 했다.

 

[Java] 조합 Combination

조합 조합이란 n 개의 숫자 중에서 r 개의 수를 순서 없이 뽑는 경우를 말한다. (위키백과 - 수학에서 조합은 서로 다른 n개의 원소 중에서 순서에 상관없이 r개를 선택하는 것이다. 그 경우의 수

minhamina.tistory.com

class Solution {
    public int solution(int balls, int share) {
        int answer = 0;
        answer = combination(balls, share);
        return answer;
    }
    
    public static int combination(int n, int r) {
        if(n == r || r == 0) return 1;
        else                 return combination(n-1, r-1) + combination(n-1, r);
    }
}

이렇게 하니까 완전 짱 쉬움..!!!

(개인적으로는 위에 설명해주신 분 설명이랑 코드가  제일 깔끔하고 이해하기 좋았음❣👍👍)

잊고 있던 조합을 오랜만에 보았다..ㅎ

반응형