본문 바로가기
코딩테스트 연습/프로그래머스 Lv.0

프로그래머스 코딩테스트 lv.0 - 구슬을 나누는 경우의 수. (Java)

by 트레비봄 2023. 7. 31.
728x90

문제 설명

class Solution {
    public int solution(int balls, int share) {
        int answer = 0;
        answer = combination(balls, share);
//      재귀함수. balls 와 share 의 개수가 같거나 share 가 0인 경우 항상 1을 반환
//      그렇지 않은 경우, balls 개의 구슬 중 share 개의 구슬을 선택하는 
//      모든 경우의 수를 계산하기 위해 재귀함수 사용.        
        return answer;
    }
    private int combination(int balls, int share) {
        if (balls == share || share == 0) {
            return 1;
        } else {
            return combination(balls - 1, share - 1) + combination(balls - 1, share);
        }
    }
}

* 구슬을 나누는 경우의 수 라는 문제다.

* 재귀함수라 그런지 어렵다.

* combination 에 익숙한 상태에서 문제를 본다면 쉽게 풀 수 있는 문제 같기도 하다.

* 뭔가 문제 풀 때마다 느끼는데 개발 쪽에 재능이 없는 것 같다.. 하

 

728x90