본문 바로가기
반응형

combination3

[Python] 백준 #2407 조합(수학) 이번 문제는 \(_nC_r\) 조합을 구하라는 것입니다. 조합을 구하는 알고리즘은 수학을 알고 있다면 손쉽게 할 수 있습니다. 단지 문제는 숫자가 커지기 때문에 BigInteger 자료형을 제공하는 파이썬이나 자바를 이용하시는 것이 편합니다. https://www.acmicpc.net/problem/2407 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 저는 파이썬을 이용했습니다. \[ _nC_r = \frac{n!}{(n-r)! r!} \] 이것을 그대로 구현하였습니다. 제가 작성한 소스입니다. """ // baekjoon #2407 // - by Aubrey Choi // - created at 2019-06-27 "".. 2023. 4. 29.
#1256 사전(Combination Digit) 이번 문제는 사실상 조합을 찾아내는 문제입니다. 그런데 조합을 찾기 위한 숫자가 좀 큽니다. 그래보았자, 100이지만요. 난이도는 Gold IV입니다. 정답률은 28.5%이긴 하지만, 크게 어렵지 않았다고 생각했습니다. 문제의 내용을 정리하자면, N개의 a 문자와 M개의 z 문자를 조합하여 사전순으로 배열할 때, K번째 문자열을 출력하는 문제입니다. 예를 들어서 3개의 a와 2개의 z가 있다면 다음과 같이 사전순으로 나열할 수 있습니다. aaazz aazaz aazza azaaz azaza azzaa zaaaz zaaza zazaa zzaaa 이렇게 해서 총 10개의 문자열이 나옵니다. 10개의 문자열이 나온 이유는 5개의 공간 중에 2개의 공간을 선택해서 그곳에 z를 채우고, 나머지 공간에는 a로 채우.. 2020. 1. 13.
[C/C++] 백준 #1010 다리 놓기(조합) 백준 #1010 다리 놓기 문제는 수학 중 확통의 경우의 수에 어느정도 개념이 있어야 풀 수 있는 문제입니다. 강을 사이로 왼쪽에는 N 개의 지역, 오른쪽에는 M 개의 지역이 있습니다. 이 N개의 지역에 하나씩 다리를 놓아서 오른쪽에 있는 M개의 지역을 연결하고자 하는데, 다리가 서로 엇갈리지 않도록 하는 경우의 수를 물어보고 있습니다. 경우의 수를 따지는 데에는 순열과 조합이 있는데, 이와 같이 엇갈리지 않게, 즉, 항상 정해진 순서대로(또는 증가하는 순서, 감소하는 순서 등) 나열해야한다면, 이것은 조합을 선택해야 합니다. 결국 이 문제는 M개 중에서 N개를 선택하는 문제가 되겠죠. 실제 백준 문제는 다음 링크를 봐주세요. https://www.acmicpc.net/problem/1010 1010번:.. 2019. 12. 21.
728x90