시간 측정 I
강의 슬라이드에서 time.time() 함수를 불러와 기본적인 수학 연산을 수행하는 데 걸리는 시간을 측정하는 방법을 보셨죠.
이제 같은 전략을 사용해 비슷한 문제를 푸는 두 가지 방법을 비교해 보겠습니다. 문제는 1부터 100만(1,000,000)까지의 모든 양의 정수에 대한 제곱의 합을 계산하는 것입니다.
영상에서 본 것처럼, 하나는 완전탐색(브루트 포스) 방식이고 다른 하나는 더 수학적으로 정교한 방식의 두 방법을 비교합니다.
formula 함수에서는 다음의 표준 공식을 사용합니다.
$$ \frac{N*(N+1)(2N+1)}{6} $$
여기서 N=1,000,000입니다.
brute_force 함수에서는 1부터 100만까지 각 숫자를 순회하며 결과에 더합니다.
이 연습은 강의의 일부입니다
pandas로 효율적인 코드 작성하기
연습 안내
formula()함수를 사용해 문제의 결과를 계산하세요.formula()함수를 사용해 결과를 계산하는 데 걸린 시간을 출력하세요.brute_force()함수를 사용해 문제의 결과를 계산하세요.brute_force()함수를 사용해 결과를 계산하는 데 걸린 시간을 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Calculate the result of the problem using formula() and print the time required
N = 1000000
fm_start_time = ____
first_method = formula(N)
print("Time using formula: {} sec".format(time.time() - fm_start_time))
# Calculate the result of the problem using brute_force() and print the time required
sm_start_time = ____
second_method = ____(N)
print("Time using the brute force: {} sec".format(time.time() - sm_start_time))