본문 바로가기

알고리즘

[코드업] 2652 - 극장 좌석 배치 2

문제 설명

극장에 '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