[programmers] day9

정수현·2026년 8월 1일

Programmers

목록 보기
4/4

프로그래머스 입문 day9

(3/4) 구슬을 나누는 경우의 수

2026-07-29

1. 문제

조합 공식을 이용해 경우의 수 구하기

2. 처음 접근

주어진 경우의 수 공식을 바탕으로 세 개의 for문을 돌려 팩토리얼을 구하게 함

3. 트러블슈팅

  • 문제
    테스트는 통과했으나 제출 테스트케이스에서 계속 실패함
  • 원인
    원인은 30!int 타입의 범위를 넘어 오버플로우가 발생했기 때문
  • 해결 시도
    우선 처음 접근 방식인 세 개의 for문을 돌리는 것이 비효율적이라 판단해 별도의 factorial() 메서드를 구현해 호출하는 방식을 시도했으나 근본 원인인 int 타입의 한계를 해결하지 못 함
  • 해결
    BigInteger 타입을 사용해 큰 숫자도 저장할 수 있도록 함
    또한 코드 효율성을 위해 분모, 분자 따로 계산하는 것이 아니라 함께 계산되도록 함

4. 배운 개념

BigInteger 사용법

  • BigInteger.ONE
  • BigInteger.valueOf()
  • multiply()
  • divide()

5. 회고

30분 고민해도 해결이 안되면 아예 다른 방향을 틀 줄 알아야 함 .. 안되는 거 될 것 같다고 한 시간을 붙잡지 말 것

0개의 댓글