티스토리 뷰

Algorithm/BOJ

백준 1010번 C++

poopooreum 2023. 7. 20. 16:31
반응형
백준 1010번 다리 놓기

https://www.acmicpc.net/problem/1010

1010번: 다리 놓기

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다.

www.acmicpc.net



정답 코드
#include <iostream>
 
using namespace std;
 
int com(int n, int r);
int arr[31][31]={0, };
 
int main(void){
    int num;
    cin >> num;
    for(int x = 0; x < num; x++){
        int a,b;
        cin >> a >> b;
        cout << com(b, a) << endl;
    }
    
    return 0;
}
 
int com(int n,int r){
    if(arr[n][r] != 0) return arr[n][r];
    if(r == 0 || r == n) return arr[n][r] = 1;
    
    return arr[n][r] =com(n - 1, r) + com(n - 1, r - 1);
}

문제 풀이

기본적인 수학 구현 문제로써 Combination을 구현하는 문제입니다. 다만 재귀함수로 구현할 시 시간초과가 나기 때문에 dp를 이용하여서 풀었습니다.

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 1037번 C++  (0) 2023.07.20
백준 1012번 C++  (0) 2023.07.20
백준 1009번 C++  (0) 2023.07.20
백준 1008번 C++  (0) 2023.07.20
백준 1003번 C++  (0) 2023.07.19
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함