반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

코딩하기 좋은날

백준 1010 다리놓기 본문

백준(Baekjoon) 문제

백준 1010 다리놓기

huiung 2019. 2. 14. 23:02
반응형

문제와 채점은 위 사이트에서 확인 하실 수 있습니다

 

이 문제는 강의 서쪽에 N개의 다리가 있고 강의 동쪽에 M개의 다리가 있을 때 연결 할 수 있는 경우의 수를 출력해야 합니다.

 

테스트 케이스가 여러가지이므로 한번에 답을 다 구해놓고 그에 맞게 출력하도록 해야 하는데 

 

M개중에 N개를 선택하는 조합으로 볼 수 있습니다. 즉 mCn으로 볼 수 있고 이는 mCn = m-1Cn-1 + m-1Cn 으로 나타낼 수 있습니다. 따라서

 

이에따라 모든 최대 경우까지 값을 모두 구하면 됩니다.

 

다음은 코드입니다.

 

#include <iostream>

using namespace std;

int main(void) {
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	int T,N,M;
	int arr[31][31] = {0, };
	
	for(int i = 1; i < 31; i++) {
		arr[i][i] = 1;
		arr[i][0] = 1;
	}
	
	for(int i = 2; i < 31; i++) {
		for(int j = i - 1; j > 0; j--)
			arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
	}
	
	cin >> T;
	
	while(T--) {
		cin >> N >> M;
		cout<<arr[M][N]<<'\n';
	}
	return 0;	
}
반응형

'백준(Baekjoon) 문제' 카테고리의 다른 글

백준 2167 2차원 배열의 합  (0) 2019.02.15
백준 2293 동전1  (0) 2019.02.15
백준 2193 이친수  (0) 2019.02.14
백준 3184 양  (0) 2019.02.13
백준 9205 맥주 마시면서 걸어가기  (0) 2019.02.13