[프로그래머스] 구슬을 나누는 경우의 수 풀이 (15점)

문제

  • 조합 (nCr)을 구하는 문제
  • nCr = nPr / r!

나의 풀이

1. 풀이 1

  • 분자 nPr(n부터 1씩 작아지며 r번 곱함)
  • 분모 r!
  • 분자(son)와 분모(mom)를 따로 구하여 나눈다.
  • 문제점: son 값이 long의 범위를 넘어감

2. 풀이 2

  • son값을 momNum으로 나누어 보는 코드를 추가하였다
  • 문제점: 여전히 son값이 long 범위를 초과함

3. 풀이 3

  • son이 mom으로 나뉘어지는지를 확인하는 코드를 추가
  • 해결완료!!

풀이 보완

  • 무한한 범위의 수를 담을 수 있는 BigInteger를 사용한다
  • BigInteger bigValue = new BigInteger(“100000”);

By dororok

Leave a Reply

Your email address will not be published. Required fields are marked *