알고리즘 공부(C++)

백준 1010 다리놓기

혀니리리 2022. 8. 24. 16:18
728x90

1010번: 다리 놓기 (acmicpc.net)

 

1010번: 다리 놓기

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다.

www.acmicpc.net

T = int(input())
lst = []
num1, num2 = 1, 1
for _ in range(T):
    N, M = map(int, input().split())
    for i in range(N):
        num1 = num1 * (M - i)
        num2 = num2 * (N - i)
    lst.append(int(num1 / num2))
    num1, num2 = 1, 1
for i in lst:
    print(i)

그냥 예제들을 보면서 가만히 생각해보니...

겹치지 않으라는 말 = mCn 형태의 조합을 구하라는 말...

그렇게 코드를 짰더니 무난히 구해졌다.

728x90

'알고리즘 공부(C++)' 카테고리의 다른 글

백준 10814 나이순 정렬  (0) 2022.08.25
2798 블랙잭  (0) 2022.08.24
백준 15649 N과 M(1)  (0) 2022.08.24
1018 체스판 다시 칠하기  (0) 2022.08.22
2477 참외밭  (0) 2022.08.18