본문 바로가기

백준

[백준] 이항 계수 1 (11050번)

728x90

코드 힌트

  1. 입력 처리:
    • 두 개의 숫자 n과 m이 입력으로 주어집니다. 이 숫자들은 nCm 조합을 계산하기 위해 사용됩니다.
    • nCm은 n개의 요소 중 m개의 요소를 선택하는 조합의 수를 의미합니다.
  2. 조합 계산:
    • 조합을 계산하기 위해 두 가지 반복문을 사용합니다.
    • 첫 번째 반복문은 n부터 n-m+1까지 곱해 n! / (n-m)!를 계산합니다.
    • 두 번째 반복문은 m!을 계산해 첫 번째 계산 결과를 나누어 최종 조합 값을 구합니다.
  3. 출력 처리:
    • 최종적으로 계산된 조합 값을 출력합니다.
    • 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