Algorithm/1일 1코테

[프로그래머스 Python] 하샤드 수

대인보우 2020. 9. 23. 20:07
반응형

문제

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

 

알고리즘

입력된 x를 각각 a,b로 입력받아 그 합으로 x를 나누었을 때 0이면 True!

그런데 a, b = map(int,str(x)))를 사용해 처리하니 런타임 에러가 발생했다.

그래서 list로 받은 뒤 sum()을 사용하니 통과

왜지..????????

map object가 속도가 느린가?

이 부분에 대해 공부해야 할 것 같다

 

내가 쓴 답

def solution(x):
    a = list(map(int, str(x)))
    if x%sum(a) == 0:
        return True
    return False
반응형