조합론
[C++]백준 - 2407번 문제
2407번: 조합 (acmicpc.net) 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 2407번 : 조합 nCm을 출력한다. 입력 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) 출력 nCm을 출력한다. 생각해 볼 점 예제 출력을 보아하니 출력값은 int 범위(21억)는 가볍게 넘고, long long도 충분히 넘어갈 것 같습니다. C++로 해결하고 싶다면, string을 이용해 덧셈을 처리하는 함수가 필요합니다. 덧셈은 사람이 수동으로 더하는 과정을 그대로 구현합니다. 다음은 nCm을 구하는 방법입니다만, 파스칼의 삼각형을 이용합니다. nCm = n-1Cm-1 + n-1Cm 입니다. ..
[C++]백준 - 2004번 문제
2004번: 조합 0의 개수 (acmicpc.net) 2004번: 조합 0의 개수 첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, $n \ne 0$)이 들어온다. www.acmicpc.net 2004번 : 조합 0의 개수 의 끝자리 0의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 n, m (0≤m≤n≤2,000,000,000, n≠0)이 들어온다. 출력 첫째 줄에 끝자리 0의 개수를 출력한다. 생각해 볼 점 지난 번 1676번 문제와 꽤나 유사합니다. 10의 개수를 세는 것이니, 2와 5의 개수를 세서 10을 몇 개 만들 수 있는지 확인합니다. 1676번과 달리, 이번엔 2의 개수도 고려해야 합니다. 예를 들어, 55 C 2를 구한다면, ..
[C++]백준 - 9375번 문제
9375번: 패션왕 신해빈 (acmicpc.net) 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 9375번 : 패션왕 신해빈 해빈이는 패션에 매우 민감해서 한번 입었던 옷들의 조합을 절대 다시 입지 않는다. 예를 들어 오늘 해빈이가 안경, 코트, 상의, 신발을 입었다면, 다음날은 바지를 추가로 입거나 안경대신 렌즈를 착용하거나 해야한다. 해빈이가 가진 의상들이 주어졌을때 과연 해빈이는 알몸이 아닌 상태로 며칠동안 ..
[C++]백준 - 1010번 문제
1010번: 다리 놓기 (acmicpc.net) 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 1010번 : 다리 놓기 재원이는 한 도시의 시장이 되었다. 이 도시에는 도시를 동쪽과 서쪽으로 나누는 큰 일직선 모양의 강이 흐르고 있다. 하지만 재원이는 다리가 없어서 시민들이 강을 건너는데 큰 불편을 겪고 있음을 알고 다리를 짓기로 결심하였다. 강 주변에서 다리를 짓기에 적합한 곳을 사이트라고 한다. 재원이는 강 주변을 면밀히 조사해 본 결과 강의 서쪽에는 N개의 사이트가 있고 동쪽에는 M개의 사이트가 있다는..
[C++]백준 - 11051번 문제
11051번: 이항 계수 2 (acmicpc.net) 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 11051번 : 이항 계수 2 자연수 N과 정수 K가 주어졌을 때 이항 계수 를 10,007로 나눈 나머지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ K ≤ N) 출력 를 10,007로 나눈 나머지를 출력한다. 생각해 볼 점 저번과 달리 입력 되는 N의 값이 1000까지 늘어났으며, 10007로 나눈 나머지를 출력해야 하는 조건도 붙었습니다. 단순히 생각하면, 11050번 때처럼 조합식으로 풀 수도 있지만, 10007로..
[C++]백준 - 11050번 문제
11050번: 이항 계수 1 (acmicpc.net) 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 11050번 : 이항 계수 1 자연수 N과 정수 K가 주어졌을 때 이항 계수 를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 0 ≤ K ≤ N) 출력 를 출력한다. 생각해 볼 점 이항 계수는 두가지 방법으로 구할 수 있습니다. 1. 조합 n C k로 구하기 2. 파스칼의 삼각형으로 구하기 자세한 내용은 파스칼의 삼각형 - 위키백과, 우리 모두의 백과사전 (wikipedia.org) 파스칼의 삼각형 - 위키백과, 우리 모두의 백과사전 위키백과..