문제 설명
극장에 'n'개의 빈 좌석이 있다.
'k'명의 관객들이 영화를 보기 위해서 왔다.
이 관객들이 'n'개의 좌석에 앉을 수 있는 서로 다른 방법의 수를 구하는 프로그램을 작성하시오.
(단, 'k'명의 사람을 서로 구분되지 않으며, 한 명이 좌석에 앉으면 그 양 옆자리는 비어 있도록 배치해야 한다.)
입력
첫 번재 줄에 n과 k가 공백으로 구분되어 입력된다.
[입력값의 정의역]
1≤k≤n≤30
출력
구한 답을 첫 번째 줄에 출력한다.
더보기
입력 예시
4 2
출력 예시
3
#include<iostream> #include<vector> #include<algorithm> using namespace std; long long factorial(int n){ if(n <= 1) return 1; else return n * factorial(n - 1); } int main(){ int n, k; cin >> n >> k; int blank = n - k; // 빈자리수 cout << factorial(blank + 1) / (factorial(k) * factorial(blank + 1 - k)); return 0; }
'알고리즘' 카테고리의 다른 글
[코드업] 2699 - 사투리 (0) | 2020.04.25 |
---|---|
[코드업] 4039 - 놀이공원 (0) | 2020.04.17 |
[백준] 1865 - 웜홀 (0) | 2020.04.17 |
[백준] 12851 - 숨바꼭질 2 (0) | 2020.04.01 |
[코드업] 3210 - 기억력 테스트 5 (0) | 2020.03.29 |