[백준] 6591번 이항 쇼다운

거북이·2023년 3월 18일
0

백준[실버3]

목록 보기
70/92
post-thumbnail

💡문제접근

  • 조합을 함수로 구현하여 문제를 해결할 수 있었다.

💡코드(메모리 : 31256KB, 시간 : 40ms)

import sys
input = sys.stdin.readline

def nCk(N, K):
	# nC0의 값은 1
    if K == 0:
        return 1
    # ex. 9C7 = 9C2로 바꿀 수 있는데 계산의 편리함을 위해 다음과 같은 swap과정을 수행
    if K > N - K:
        K = N - K

    N_val = 1
    K_val = 1
    for i in range(K):
    	# N_val = N!, K_val = K!
        N_val *= (N-i)
        K_val *= (K-i)

    return N_val // K_val

while True:
    A, B = map(int, input().strip().split())
    if A == 0 and B == 0:
        break
    print(nCk(A, B))

💡소요시간 : 12m

0개의 댓글