Algorithms63 백준 11051. 이항 계수 2 https://www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 문제 자체는 바로 이전 문제와 거의 동일하나, 결과를 10,007로 나눈 나머지를 구해주면 된다. import math n, k = map(int, input().split()) res = math.factorial(n)//(math.factorial(n-k) * math.factorial(k)) print(res % 10007) 2022. 6. 11. 백준 11050. 이항 계수 1 https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 단순히 조합을 구현해보면 되는 문제. 조합 공식은 이렇게 되기에, 팩토리얼 함수를 하나 구현해서 풀었다. def fac(n): if n == 1 or n == 0: return 1 return n * fac(n - 1) n, k = map(int, input().split()) print(int(fac(n)/(fac(k) * fac(n-k)))) 2022. 6. 10. 백준 3036. 링 https://www.acmicpc.net/problem/3036 3036번: 링 출력은 총 N-1줄을 해야 한다. 첫 번째 링을 제외한 각각의 링에 대해서, 첫 번째 링을 한 바퀴 돌리면 그 링은 몇 바퀴 도는지 기약 분수 형태 A/B로 출력한다. www.acmicpc.net 원의 둘레는 2*pi*반지름 r로 결정되는데, 이로부터 결국 서로 다른 두 원의 둘레의 비는 반지름의 비율과 같음을 알 수 있다. 그 비율을 기약분수로 나타내면 되므로, 각 반지름을 두 수의 최대공약수로 나눠주면 기약분수를 구할 수 있다. import math n = int(input()) lst = list(map(int, input().split())) r = lst[0] for i in range(1, n): print(st.. 2022. 6. 10. 백준 1934. 최소공배수 블로그를 티스토리로 이전 중인데, 하루 글 제한 15개가 있어서 우선 남기고 옮기기로 했다. 이번 문제는 유클리드 호제법을 이용해서 최소공배수를 구하는 것. 유클리드 호제법이란, a와 b가 있을 때 그 나머지를 이용한 반복으로 최대공약수를 구할 수 있는 방법이다. a = kb + r 식으로 정수 k와 나머지 r로 나타낼 수 있다고 해보자. 그러면 이 두 수의 최대공약수는 b와 r의 최대공약수와도 같다. n = int(input()) for i in range(n): lst = list(map(int, input().split())) a, b = max(lst), min(lst) r = a%b if r == 0: a = b while r != 0: r = a%b a = b b = r print((lst[0.. 2022. 6. 9. 이전 1 ··· 5 6 7 8 9 10 11 ··· 16 다음