[백준/JAVA] 1010번 다리 놓기

정은아·2024년 2월 19일

[알고리즘] 수학 모음

목록 보기
13/152
post-thumbnail

문제

내 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.StringTokenizer;

public class Main extends Exception {
    public static void main(String[] args) throws IOException {

        // nCr 구하기

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        long num = Integer.parseInt(br.readLine());

        for (int i = 1; i <= num; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int r = Integer.parseInt(st.nextToken());
            int n = Integer.parseInt(st.nextToken());

            BigInteger nFac = BigInteger.valueOf(1);
            BigInteger rFac = BigInteger.valueOf(1);
            BigInteger nMinRFac = BigInteger.valueOf(1);
            BigInteger answer = BigInteger.valueOf(1);

            for (int j = 1; j <= n; j++) {
               nFac = nFac.multiply(BigInteger.valueOf(j));
            }

            for (int j = 1; j <= r; j++) {
                rFac = rFac.multiply(BigInteger.valueOf(j));
            }

            for (int j = 1; j <= (n - r); j++) {
                nMinRFac = nMinRFac.multiply(BigInteger.valueOf(j));
            }

            answer = nFac.divide(rFac.multiply(nMinRFac));
            sb.append(answer).append("\n");
        }
        System.out.println(sb.toString());
    }
}

느낀점

브론즈 5단계에서 지긋지긋하게 괴롭히던 BigInteger가 실버에 나왔다
으악!! 그래도 for문은 그냥 for문 썼다.. 그럼 됐어..

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글