[ 문제 ]
곧 시계는 6시, 벌써 첫 번째 별이 보인다. 정N각형 모양의 하늘에는 몇 개의 별이 뜰 수 있을까? 정N각형의 꼭짓점의 개수 N이 주어졌을 때, 정N각형의 꼭짓점을 이어 만들 수 있는 서로 다른 별의 개수를 출력하여라. 별은 정N각형의 다섯 꼭짓점에 시계 방향으로 번호를 붙였을 때, 그 꼭짓점들을 1-3-5-2-4-1 순으로 연결한 것을 의미한다. 뒤집거나 돌려서 같은 모양이 나오는 별도 정N각형의 다른 꼭짓점을 이어 만든 별이라면 서로 다른 별이다.
[ 코드 ]
using System;
using System.Numerics;
int n = int.Parse(Console.ReadLine());
int k = 5;
BigInteger result = Combination(n, k);
Console.Write(result);
BigInteger Factorial(int n)
{
if (n <= 0)
{
return 1;
}
return n * Factorial(n - 1);
}
BigInteger Combination(int n, int k)
{
if (k < 0 || k > n)
{
return 0;
}
return Factorial(n) / (Factorial(k) * Factorial(n - k));
}
[ 풀이 ]
이항 계수는 주어진 크기의 집합에서 일부 원소를 선택하여 만들 수 있는 부분 집합의 수를 계산하는 데 사용된다.
n개의 원소에서 k개의 원소를 선택하는 경우의 수를 나타내기 때문에 조합을 구하는 이항 계수 공식을 사용하면 된다.
전에 이항계수 공식을 설명하는 문제(11050번)가 있었는데 이건 이항계수 공식을 응용하여 푸는 문제였다.
https://milkyquartz.tistory.com/46
[C#] 백준 11050번 이항계수 1
[ 문제 ] 자연수 N과 정수 K가 주어졌을 때 이항 계수를 구하는 프로그램을 작성하시오. [ 코드 ] string[] s = Console.ReadLine().Split(); int n = int.Parse(s[0]); int k = int.Parse(s[1]); int result = BinomialCoefficient(n, k);
milkyquartz.tistory.com
[ 실행화면 ]
문제링크: https://www.acmicpc.net/problem/30821
30821번: 별자리가 될 수 있다면
곧 시계는 6시, 벌써 첫 번째 별이 보인다. 정$N$각형 모양의 하늘에는 몇 개의 별이 뜰 수 있을까? 정$N$각형의 꼭짓점의 개수 $N$이 주어졌을 때, 정$N$각형의 꼭짓점을 이어 만들 수 있는 서로 다
www.acmicpc.net
'Language > C#' 카테고리의 다른 글
[C#] 백준 27465번 소수가 아닌 수 (0) | 2024.02.06 |
---|---|
[C#] 백준 30454번 얼룩말을 찾아라! (3) | 2024.02.05 |
[C#] 백준 29720번 그래서 님 푼 문제 수가? (2) | 2024.02.04 |
[C#] 백준 30822번 UOSPC 세기 (0) | 2024.02.03 |
[C#] 백준 2566번 최댓값 (2차원 배열의 최댓값 찾기) (0) | 2024.02.02 |