๊ด€๋ฆฌ ๋ฉ”๋‰ด

yeon's ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

[C++] ๋ฐฑ์ค€(BOJ) | 1010๋ฒˆ : ๋‹ค๋ฆฌ ๋†“๊ธฐ ๋ณธ๋ฌธ

Computer ๐Ÿ’ป/์•Œ๊ณ ๋ฆฌ์ฆ˜

[C++] ๋ฐฑ์ค€(BOJ) | 1010๋ฒˆ : ๋‹ค๋ฆฌ ๋†“๊ธฐ

yeon42 2021. 8. 9. 16:07
728x90

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

 

1010๋ฒˆ: ๋‹ค๋ฆฌ ๋†“๊ธฐ

์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„๋ถ€ํ„ฐ ๊ฐ๊ฐ์˜ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์— ๋Œ€ํ•ด ๊ฐ•์˜ ์„œ์ชฝ๊ณผ ๋™์ชฝ์— ์žˆ๋Š” ์‚ฌ์ดํŠธ์˜ ๊ฐœ์ˆ˜ ์ •์ˆ˜ N, M (0 < N ≤ M < 30)์ด ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

 

 

์ด ๋ฌธ์ œ๋Š” ๋ณด์ž๋งˆ์ž ์กฐํ•ฉ ๋ฌธ์ œ๋ผ๋Š”๊ฒŒ ์ฝํ˜€์ ธ ํฌ๊ฒŒ ์–ด๋ ต์ง„ ์•Š์•˜๋‹ค.

ํ•˜์ง€๋งŒ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ž๊พธ ์˜ค๋ฅ˜๊ฐ€ ๋–ด์—ˆ์Œ ..

 

#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;

// nCr = n-1Cr-1 + n-1Cr
int T, N, M;
long long dp[35][35];

long long combination(int n, int r) {
    if ((n==r) || (r==0))
        return 1;
    
    if (dp[n][r] != 0)
        return dp[n][r];

    dp[n][r] = combination(n-1, r-1) + combination(n-1, r);

    return dp[n][r];
}

int main() {

    cin >> T;

    while(T--) {
        
        cin >> N >> M;

        cout << combination(M, N) << '\n';
    }

    return 0;

}

 

๋งˆ์ง€๋ง‰์— combination(N, M)์ด๋ผ๊ณ  ์ผ์–ด์„œ ์˜ค๋ฅ˜๊ฐ€ ๋–ด์—ˆ๋‹ค ๋ฐ”๋ณด

 

int๊ฐ€ ์•„๋‹ˆ๋ผ long์œผ๋กœ ์“ฐ๋Š” ๊ฒƒ๋„ ์ฃผ์˜ํ•˜์ž

 

 


#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;

// nCr = n-1Cr-1 + n-1Cr
int T, N, M;

long long combination(int n, int r) {
    if ((n==r) || (r==0))
        return 1;
    
    else
        return combination(n-1, r-1) + combination(n-1, r);
}

int main() {

    cin >> T;

    while(T--) {
        
        cin >> N >> M;

        cout << combination(M, N) << '\n';
    }

    return 0;

}

 

์ฐธ๊ณ ๋กœ ๋”ฐ๋กœ dp ๋ฐฐ์—ด์„ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ returnํ•˜๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋–ด๋‹ค.

Comments