Coding Test (코딩 테스트)
[브론즈1]백준 11050번(이항 계수 1) - 코테공부 38일차(2025.03.04)
Meta주형
2025. 3. 4. 19:17
반응형
문제유형
조합
풀이 방법 도출 과정
1. 간단한 이항계수를 구하면 되는 문제.
2. 이를 위해서 itertools를 쓰면 된다. 이를 사용하여 이항계수를 구하면 간단하게 할 수 있다.
시간 복잡도
시간 복잡도는 range(1, N +1) C K다. 최악의 경우 N이 10일 경우를 생각하면 1~10C1이라고 가정해도 1억은 넘지 않는다.
코드 및 간단설명
조합 알고리즘을 사용하였다.
from itertools import combinations
result = []
N, K = map(int, input().split())
# range(N)로 1부터 N까지의 숫자를 iterable로 만든 후, 그로부터 K개의 조합을 구함
result.extend(combinations(range(1, N + 1), K))
print(len(result))
다른 풀이
1) 이항 계수 공식을 사용해서 풀은 풀이
이항계수는 C(a, b) = a!/b!(a-b)!이런 식으로 바꿀 수 있는데 이를 구현한 것이다.
a, b = map(int, input().split())
result = 1
k = 1
for i in range(a, a-b, -1):
result *= i
for i in range(b, 0,-1):
k*=i
print(result//k)
반응형