** 이 글을 읽음에 앞서 포스팅 된 소스가 100% 정답은 아님을 밝힙니다.
더욱 유능한 분께서 클린 / 최적의 소스를 짜셨을 가능성이 높습니다.
기록용으로 남기며, 참고만 부탁드립니다.
** 백준 알고리즘은 직접 풀이를 해보시는 것을 권장합니다.
● 문제
난이도[티어] : 실버 5
백준 알고리즘 1010번 다리 놓기
https://www.acmicpc.net/problem/1010
● 풀이 방법
다리를 건설 할 때 서로 겹쳐질 수 없다는 점이 포인트이다.
그렇다면 고등수학에서의 확률과 통계에서 배운 콤비네이션을 통해서 답을 구할 수 있다.
콤비네이션(combination) : 서로 다른 n개에서 r개를 뽑는 방법의 수
우리는 7개에서 4개를 뽑는 식을 구현하면 된다.
● 소스 코드
#include <iostream>
using namespace std;
int main(void)
{
int test_case;
cin >> test_case;
for(int a = 0; a < test_case; a++){
int EAST_pin, WEST_pin;
unsigned long result = 1;
cin >> WEST_pin >> EAST_pin;
int c = 1;
for(int i = EAST_pin; i > EAST_pin-WEST_pin; i--){
result = result * i;
result = result / c;
c++;
}
cout << result << endl;
}
}
● 결과
** 코드 길이가 상이 할 수 있습니다! 그러나 내용물은 같습니다.
이유) 주석 및 더미 소스 유무
'백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘 C/C++] 1018번 문제 풀이: 체스판 다시 칠하기 (1) | 2024.03.24 |
---|---|
[백준 알고리즘 C/C++] 1011번 문제 풀이: Fly me to the Alpha Centauri (0) | 2024.03.24 |
[백준 알고리즘 C/C++] 3474번 문제 풀이: 교수가 된 현우 (1) | 2024.03.24 |
[백준 알고리즘 C/C++] 2828번 문제 풀이 : 사과 담기 게임 (0) | 2024.03.13 |
[백준 알고리즘 C/C++] 14916번 문제 풀이 : 거스름돈 (0) | 2024.03.13 |