⏰문제
💡풀이
고등학생 때 배운 조합공식을 이용해서 풀었다.
사용한 공식은 아래와 같다.
$\binom{n}{k} = \left\{\begin{matrix}
0 & k< 0\\
\frac{n!}{k!(n-k)!} & 0 \leq k\leq n \\
0 & k > n \\
\end{matrix}\right.$
⌨️ 코드
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());
int sum =1;
for(int i=N; i>= N-K+1; i--){
sum*=i;
}
for(int i=K;i>1; i--){
sum/=i;
}
System.out.println(sum);
}
}
📣 comment
soved.ac class2를 완료하기 위해서 풀은 문제이다. 문제 자체가 단순하고 for문을 사용해서 쉽게 풀긴 했지만, 다른 풀이가 있을 것이라 생각했다. 그래서 찾아본 결과 역시 dfs, dp 등의 다양한 알고리즘으로 이 문제를 풀 수 있었다.
dfs가 약하다 보니 dfs보다는 for문을 먼저 풀었는데, dfs관련 문제를 많이 풀어서 익숙해져야 할 것 같다ㅠ
📑 참고
https://st-lab.tistory.com/159
[백준] 11050번 : 이항 계수 1 - JAVA [자바]
www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 문제 알고리즘 [접근 방법] 이항 계수(Binomial coefficient) 문제 자체는 매
st-lab.tistory.com
'⚙️알고리즘 > Java' 카테고리의 다른 글
백준) 11650 : 좌표 정렬하기 (0) | 2024.01.10 |
---|---|
백준) 1181 : 단어정렬 (0) | 2024.01.09 |
백준) 1920 : 수 찾기 (2) | 2024.01.08 |
백준) 10845 : 큐 (0) | 2024.01.06 |
백준) 9095 : 1,2,3 더하기 (0) | 2024.01.05 |