본문 바로가기

프로그래밍/코딩 문제 풀이

[백준] 단계별 문제풀이 #11382- 꼬마 정민

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() 를 쓰는 게 빠르다는 결과가 나오기는 했지만,
검토 방법에 문제가 있었는지 추가 확인은 필요할 것 같다.