inblog logo
|
silver
    알고리즘문제풀기

    [알고리즘문제풀기] 구슬을 나누는 경우의 수

    silver's avatar
    silver
    Jan 05, 2026
    [알고리즘문제풀기] 구슬을 나누는 경우의 수
    Contents
    문제내가 작성한 오답내가 작성한 정답다른 사람들의 정답

    문제

    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/120840

    내가 작성한 오답

    : 나눈 결과를 int에 저장해서 손실이 발생한 것이 아닐까 싶었다.
    class Solution { public int solution(int balls, int share) { int answer = 1; for(int i=1; i<=share; i++){ answer=answer*(balls-(i-1))/i; } return answer; } }

    내가 작성한 정답

    class Solution { public int solution(int balls, int share) { long answer = 1; for(int i=1; i<=share; i++){ answer=answer*(balls-(i-1))/i; } return (int)answer; } }

    다른 사람들의 정답

    public long solution(int balls, int share) { share = Math.min(balls - share, share); // ① k 최적화 (nCk = nC(n-k)) if (share == 0) return 1; // ② 기본 케이스 long result = solution(balls - 1, share - 1); // ③ 재귀 호출 result *= balls; result /= share; return result; }
    Share article

    silver

    RSS·Powered by Inblog