수학

    [python] 백준 - 2004. 조합 0의 개수

    [python] 백준 - 2004. 조합 0의 개수

    🤔문제 해결 S2 | 수학 진짜 팩토리얼로 구해서 문제를 해결하게 되면 시간초과 발생 끝자리가 0이라는 것은 10의 배수 10은 2와 5로 구성되어 있음 2와 5 짝이 맞아야 10이 되므로 2의 개수와 5의 개수중 더 작은게 10의 개수이다. 💻소스 코드 N, M = map(int, input().split()) # 진짜 팩토리얼로 구해서 문제를 해결하게 되면 시간초과 발생 # 끝자리가 0이라는 것은 10의 배수 # 10은 2와 5로 구성되어 있음 # 2와 5 짝이 맞아야 10이 되므로 2의 개수와 5의 개수중 더 작은게 10의 개수이다. def count_number(n, k): count = 0 while n: n //= k count += n return count five_count = count..

    [python] SWEA - 6019. 기차 사이의 파리

    [python] SWEA - 6019. 기차 사이의 파리

    🤔문제 해결 D3 | 수학? 파리와 맞은 편 기차가 만나는 시간은 t 로 같다 파리와 맞은 편 기차가 이동한 거리의 합은 D 이다. 이렇게 저렇게 식을 계산 해보면 파리가 이동한 거리는 파리가 이동한거리는 따로 누적해주고, 파리의 속력과 이동한거리가 있으므로 시간을 구해주고 구한 시간으로 기차의 이동거리를 구해준다. 그럼 남은 기차사이의 간격은 (기존의 기차사이의 간격 - 두 기차의 이동거리) 💻소스 코드 if __name__ == "__main__": T = int(input()) for tc in range(1, 1 + T): # 사이의 거리, A 속력, B 속력, 파리 속력 D, A, B, F = map(int, input().split()) # s = v*t 파리가 날아간 거리 fly_d = 0 ..

    [python] 백준 - 1722. 순열의 순서

    [python] 백준 - 1722. 순열의 순서

    🤔문제 해결 S1 | 수학, 조합론 순열을 보면 itertools의 permutation이 생각난다. 하지만 이 문제에서는 N이 20까지 이므로 20!을 구하는것은 불가능. 먼저 소문제1일 때의 경우를 살펴보자. N = 5, K = 35 일 때(5개의 숫자, 35번째 순열) N = 5 이므로 5! = 120이다. 120 / N 으로 나누면 24가 되는데, 이는 각각의 앞자리 5개가 가지는 경우의 수이다. 앞자리가 1이면 1 ~ 24번째, 앞자리가 2이면 25 ~ 48번째, 앞자리가 3이면 49 ~ 72번째 ... 이다. K = 35이면 25~48이므로 앞자리가 2라는 것을 알 수 있다. 다음 스텝으로 넘어가면 n = 4, k = 35 - 24 = 11이다. 즉, 맨 2 이전의 숫자인 1이 맨 앞자리에 오..