<Algorithm> 26. 1010번 다리놓기
by BFine반응형
1. 1010번 다리놓기
nCr로 풀 수 있다. 공식 n!/r!(n-r)!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.math.BigInteger; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; ArrayList<BigInteger> resultList = new ArrayList<>(); int N = Integer.parseInt(br.readLine()); for(int T = 0; T < N; T++) { BigInteger res = new BigInteger("1"); st = new StringTokenizer(br.readLine()); int r = Integer.parseInt(st.nextToken()); int n = Integer.parseInt(st.nextToken()); for(int i = 0; i < r; i++) { res = res.multiply(BigInteger.valueOf(n-i)); // n * n-1 * n-2 ~~ * n-r+1 res = res.divide(BigInteger.valueOf(i+1)); // r! } resultList.add(res); } for(BigInteger b:resultList) { System.out.println(b); } } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.math.BigInteger; import java.util.ArrayList; import java.util.StringTokenizer; public class AA { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; ArrayList<BigInteger> list = new ArrayList<>(); int N = Integer.parseInt(br.readLine()); for(int t = 0 ; t < N; t ++) { BigInteger bg = new BigInteger("1"); BigInteger bg2 = new BigInteger("1"); st = new StringTokenizer(br.readLine()); int r = Integer.parseInt(st.nextToken()); int n = Integer.parseInt(st.nextToken()); for(int i = n; i > r; i--) { bg = bg.multiply(bg.valueOf(i)); bg2 = bg2.multiply(bg.valueOf(i-r)); System.out.println(bg.valueOf(i)+" "+bg.valueOf(i-r)+" "); } list.add(bg.divide(bg2)); } for(BigInteger bg : list) System.out.println(bg); } } | cs |
반응형
'공부(2018~2019) - 스킨변경전 > Algorithm' 카테고리의 다른 글
<Algorithm> 28. 10974번 모든순열 (0) | 2018.08.03 |
---|---|
<Algorithm> 27. 4673번 셀프넘버 (0) | 2018.08.02 |
<Algorithm> 25. 1032번 명령 프롬프트 (0) | 2018.08.02 |
<Algorithm> 24. 1065번 한수 (0) | 2018.08.02 |
<Algorithm> 23. 1085번 직사각형에서 탈출하기 (0) | 2018.08.02 |
블로그의 정보
57개월 BackEnd
BFine