문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/120840
제한 사항
입출력 예
풀이
import java.util.stream.Stream;
import java.math.BigInteger;
class Solution {
public int solution(int balls, int share) {
return (getFactorial(balls).divide(
getFactorial(balls - share).multiply(
getFactorial(share))
)
).intValue();
}
private BigInteger getFactorial(int num) {
return Stream.iterate(BigInteger.ONE, i -> i.add(BigInteger.ONE))
.limit(num)
.reduce(BigInteger.ONE, BigInteger::multiply);
}
}
후기
중간에 팩토리얼의 결과가 long보다도 길어져서 BigInteger를 사용하거나 다른 방법을 찾아봐야 하는 문제이다. BigInteger를 사용하는 문제는 흔치 않아서 풀어봤다. 0단계 문제는 단순히 요구하는대로 풀면 돼서 간단하지만 기본적인 자료구조나 해결방법에 대해서 물어보는 경우가 많기 때문에 라이브러리, 문법, 자료구조 등을 복습하기에 좋은 것 같다.
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
[프로그래머스][Java][Lv. 2] 택배 배달과 수거하기 (0) | 2024.08.06 |
---|---|
[프로그래머스][Java][Lv. 2] [PCCP 기출문제] 2번 / 석유 시추 (0) | 2024.08.01 |
[프로그래머스][Java][Lv. 2] 무인도 여행 (0) | 2024.07.18 |
[프로그래머스][Java][Lv. 2] 혼자서 하는 틱택토 (0) | 2024.07.16 |
[프로그래머스][Java][Lv. 2] 호텔 대실 (0) | 2024.07.12 |