โค๏ธ Problem
- ๋ฌธ์
๋จธ์ฑ์ด๋ ๊ตฌ์ฌ์ ์น๊ตฌ๋ค์๊ฒ ๋๋์ด์ฃผ๋ ค๊ณ ํฉ๋๋ค. ๊ตฌ์ฌ์ ๋ชจ๋ ๋ค๋ฅด๊ฒ ์๊ฒผ์ต๋๋ค. ๋จธ์ฑ์ด๊ฐ ๊ฐ๊ณ ์๋ ๊ตฌ์ฌ์ ๊ฐ์ balls์ ์น๊ตฌ๋ค์๊ฒ ๋๋์ด ์ค ๊ตฌ์ฌ ๊ฐ์ share์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, balls๊ฐ์ ๊ตฌ์ฌ ์ค share๊ฐ์ ๊ตฌ์ฌ์ ๊ณ ๋ฅด๋ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- ์ ํ์ฌํญ
- 1 ≤ balls ≤ 30
- 1 ≤ share ≤ 30
- ๊ตฌ์ฌ์ ๊ณ ๋ฅด๋ ์์๋ ๊ณ ๋ คํ์ง ์์ต๋๋ค.
- share ≤ balls
- ์ ์ถ๋ ฅ ์ & ์ค๋ช
no | balls | share | result |
1 | 3 | 2 | 3 |
2 | 5 | 3 | 10 |
- ์๋ก ๋ค๋ฅธ ๊ตฌ์ฌ 3๊ฐ ์ค 2๊ฐ๋ฅผ ๊ณ ๋ฅด๋ ๊ฒฝ์ฐ์ ์๋ 3์ ๋๋ค.
- ์๋ก ๋ค๋ฅธ ๊ตฌ์ฌ 5๊ฐ ์ค 3๊ฐ๋ฅผ ๊ณ ๋ฅด๋ ๊ฒฝ์ฐ์ ์๋ 10์ ๋๋ค.
๐ Solution
ํ์ด
import java.math.BigInteger;
class Solution {
public int solution(int balls, int share) {
int mns = balls - share;
BigInteger answer = Factorial(balls).divide((Factorial(mns).multiply(Factorial(share))));
return answer.intValue();
}
public static BigInteger Factorial (int n) {
BigInteger fac = BigInteger.ONE;
for (int i=n; i>0; i--) {
fac = fac.multiply(BigInteger.valueOf(i));
}
return fac;
}
}
์ฒ๋ฆฌ์๋์ ๋ํ ๋ณด์์ด ํ์ํด ๋ณด์ธ๋ค
๐ Comment
์ฒ์์๋ ์๋ฃํ์ long์ผ๋ก ์ก๊ณ ํฉํ ๋ฆฌ์ผ ํด๋์ค๋ฅผ ๋ง๋ค์๋๋ฐ, ์ฝ๋ ์คํ์ ํด๋ณด๋ฉด ์๊พธ ์คํจ๊ฐ ๋์๋ค. ๊ทธ๋์ ๊ฐ๊ณ ์๋ ๊ตฌ์ฌ์ ์๋ฅผ 30๊ฐ๋ก, ๋๋์ด ์ค ๊ตฌ์ฌ์ ๊ฐ์๋ฅผ 2๊ฐ๋ก ์ก๊ณ ๋๋ ค๋ดค๋๋ ๊ฐ์ด -1์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ์๋ค.
ํฉํ ๋ฆฌ์ผ ํด๋์ค์ ๋ก์ง๊ณผ ๊ณ์ฐ์์๋ ๋ฌธ์ ๊ฐ ์์์ผ๋ฏ๋ก ์๋ฃํ์ด ๋๋ฌด ์์์ ์ ๋๋ก ์ถ๋ ฅ๋์ง ์๋๋ค๊ณ ์๊ฐํ๋ค.
๊ฒ์์ ํด๋ณด๋ BigInteger๋ผ๋ ํด๋์ค๊ฐ ์์๋ค. (java.math ํจํค์ง)
BigInteger๋ ๋ฌธ์์ด ํํ๋ก ๋ง๋ค์ด์ ธ ์ซ์ ๋ฒ์์ ์ ํ์ด ์๋ ๊ฒ์ด ํน์ง์ด๋ค. ์๋ฃํ์ด ์๋๋ฏ๋ก ์ฌ์ฉ ์ import๋ฅผ ํด์ค์ผํ๊ณ , ๊ณ์ฐ ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
๐ค Concept
- ํ ๋น๋๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ
- int == 4byte (-2,147,483,648 ~ 2,147,483,647)
- long == 8byte (-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)
- BigInteger์ ๋ช๋ช ๋ฉ์๋
- BigInteger bigNum = new BigInteger();
- bigNum.add(OTHERNUM);
- bigNum.substract(OTHERNUM);
- bigNum.multiply(OTHERNUM);
- bigNum.divide(OTHERNUM);
- bigNum.gcd(OTHERNUM);
- bigNum.abs();
- bigNum.intValue();
- bigNum.longValue();
'Programmers lv-0' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ๊น์ด ์ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.28 |
---|---|
์ค๋ณต๋ ๋ฌธ์ ์ ๊ฑฐ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.27 |
์ปจํธ๋กค ์ ํธ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.27 |
์์ธ์๋ถํด - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.27 |
์จ์ด์๋ ์ซ์์ ๋ง์ (1) - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.27 |
์ง๋ฃ์์ ์ ํ๊ธฐ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.27 |
๋๊ธ