https://www.acmicpc.net/problem/11050
11050번: 이항 계수 1
첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\))
www.acmicpc.net
풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
System.out.println(recur(n,k));
}
public static int recur(int n, int k){
if( (k==0) || (n ==k)) return 1;
return recur(n-1,k) + recur(n-1,k-1);
}
}
설명
이항 계수의 특성을 이용해서 재귀 함수로 구현.
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준1018/JAVA] 체스판 다시 칠하기 (0) | 2022.01.05 |
---|---|
[백준1181/JAVA]단어 정렬 (0) | 2022.01.04 |
[백준1259/JAVA] 팰린드롬수 (0) | 2021.12.30 |
[백준15829/JAVA] Hashing (0) | 2021.12.29 |
[백준2798/JAVA] 블랙잭 (0) | 2021.12.29 |