반응형
코딩하기 전 생각하기
/*
확률 문제이다. 펜과 종이를 꺼내야겠다.
*/
코드
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
long long n, r, x, y, x_i, y_i; // 분자: x, 분모: y
cin >> n >> r;
r -= n;
x = 1, x_i = n + r - 1;
y = 1, y_i = n - 1;
for ( int i = 0; i < n - 1; i++ ) {
x *= x_i;
y *= y_i;
x_i--;
y_i--;
}
cout << x / y;
}
느낀점
고등학생 때 확통시간에 배웠던 중복조합이다.
그때 내가 코딩을 알았다면 컴퓨터가 나 대신에 숙제했을텐데..
곱셈 과정에서 큰 수가 만들어지기 때문에 long long 자료형을 사용하였고,
곱셈을 더 적게하기 위해 n+r-1 C r 대신에 n+r-1 C n-1 식을 썼다.
(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.
댓글 환영합니다!
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준/BOJ] 7568번 - 덩치 (C++) (0) | 2021.08.16 |
---|---|
[백준/BOJ] 2798번 - 블랙잭 (C++) (0) | 2021.08.13 |
[백준/BOJ] 2783번 - 삼각 김밥 (C++) (0) | 2021.07.27 |
[백준/BOJ] 1764번 - 듣보잡 (C++) (0) | 2021.07.24 |
[백준/BOJ] 2846번 - 오르막길 (C++) (0) | 2021.07.24 |
댓글