BOJ

[백준/BOJ] python 1010번 다리 놓기

kyj0015 2023. 1. 25. 21:30

언어: python

번호: 1010

제목: 다리 놓기

등급: 실버 5

풀이 과정:

테스트 케이스 t를 입력받아 for 문으로 출력을 t 번 반복한다.

강의 서쪽과 동쪽에 있는 사이트의 개수 n, m을 입력받는다. n 개와 m 개의 점을 연결하는 것과 같으니 이는 조합이라 할 수 있다. 조합을 구하기 위해 math 함수를 이용할 수 있지만 나는 함수 없이 구현해 보았다. n과 m 이 같은 경우, n이 1인 경우로 나누어 계산했다.

코드:

 
# 1010
t = int(input())

for i in range(t):
    result = 1

    n, m = map(int, input().split())
    if n==m:
        print(1)
        continue
    elif n==1:
        print(m)
        continue
    for i in range(m-n):
        result = result * (i+1+n) / (i+1)
    print(int(result))

 

메모:

다른 사람 코드를 봤는데 시간이 32ms로 내 코드의 절반도 안된다... 코드를 봐도 비슷해 보이는데 왜 다른 걸까? 일단 중급반 문제만 마저 풀고 알고리즘도 공부해야겠다.