728x90

문제
꼬마 정민이는 이제 A + B 정도는 쉽게 계산할 수 있다. 이제 A + B + C를 계산할 차례이다!
풀이
a, b, c = map(int, input().split(" "))
print(a + b + c)
검토
map 함수 속도가 빠를까, int 함수 속도가 빠를까?

아래와 같이 for문과 int() 함수를 활용한 코드가 속도가 빨랐다.
a, b, c = [int (i) for i in input().split(" ")]
print(a + b + c)
map 함수는 내부적으로 C로 구현되어 있어, 파이썬 반복문보다 빠르게 처리할 수 있다는데, 수행결과는 달랐던 것 같다.
list 길이를 크게 하면, 차이가 발생할까?

출처 : https://dotiromoook.tistory.com/28
아래와 같은 코드로 출력해서 비교한 결과,
for문에 int() 를 쓰는 게 평균적으로 빠르다.
import math
import time
for n in ([10, 100, 1000, 10000, 100000]):
for k in range(5):
test_string = " ".join(map(str, range(n)))
start = time.time()
math.factorial(100000)
result_list = map(int, test_string.split(" "))
# result_list = [int (i) for i in test_string.split()]
end = time.time()
print("n: {}, k: {}".format(n, k))
print(f"{end - start:.5f} sec")

우선 for문에 int() 를 쓰는 게 빠르다는 결과가 나오기는 했지만,
검토 방법에 문제가 있었는지 추가 확인은 필요할 것 같다.
'프로그래밍 > 코딩 문제 풀이' 카테고리의 다른 글
[백준] 단계별 문제풀이 #10172- 개 (0) | 2024.07.16 |
---|---|
[백준] 단계별 문제풀이 #10171- 고양이 (0) | 2024.07.16 |
[백준] 단계별 문제풀이 #2588- 곱셈 (0) | 2024.07.16 |
[백준] 단계별 문제풀이 #10869 - 사칙연산 (0) | 2024.07.16 |
[백준] 단계별 문제풀이 #1008 - A/B (0) | 2024.07.16 |