728x90
코드 힌트
- 입력 처리:
- 두 개의 숫자 n과 m이 입력으로 주어집니다. 이 숫자들은 nCm 조합을 계산하기 위해 사용됩니다.
- nCm은 n개의 요소 중 m개의 요소를 선택하는 조합의 수를 의미합니다.
- 조합 계산:
- 조합을 계산하기 위해 두 가지 반복문을 사용합니다.
- 첫 번째 반복문은 n부터 n-m+1까지 곱해 n! / (n-m)!를 계산합니다.
- 두 번째 반복문은 m!을 계산해 첫 번째 계산 결과를 나누어 최종 조합 값을 구합니다.
- 출력 처리:
- 최종적으로 계산된 조합 값을 출력합니다.
- BufferedWriter를 사용해 출력을 버퍼링하고, 모든 출력을 한 번에 처리합니다.
정답은 더보기 클릭
더보기
import java.io.*;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
// BufferedReader와 BufferedWriter를 사용해 입출력 처리
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 입력된 문자열을 공백을 기준으로 분할하여 n과 m 추출
String[] arr = br.readLine().split(" ");
int n = Integer.parseInt(arr[0]);
int m = Integer.parseInt(arr[1]);
// 조합 계산을 위한 변수 초기화
int result = 1;
// nCm 계산의 분자 부분: n*(n-1)*...*(n-m+1)
for (int i = n; i > n - m; i--) {
result *= i;
}
// nCm 계산의 분모 부분: m!
for (int i = 1; i <= m; i++) {
result /= i;
}
// 최종 계산된 조합 값을 출력
bw.write(result + "\n");
// BufferedWriter의 남은 데이터를 출력
bw.flush();
bw.close();
}
}
728x90
'백준' 카테고리의 다른 글
[백준] 다음 소수 (4134번) (2) | 2024.09.04 |
---|---|
[백준] 가로수 (2485번) (1) | 2024.09.04 |
[백준] 분해합 (2231번) (0) | 2024.08.27 |
[백준] 최소공배수 (1934번) (0) | 2024.08.26 |
[백준] 카드2 (2164번) (0) | 2024.08.26 |