본문 바로가기
코딩테스트 문제풀이(Python)

[프로그래머스] 하샤드 수 문제풀이 (파이썬)

by chanfficial 2022. 6. 27.

12947. 하샤드 수

 

 

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

 

 

 

입출력 예

arr return
10 true
12 true
11 false
13 false

 

 

 

풀이

def solution(x):
    x_list = list(str(x))
    sum = 0
    for i in x_list:
        sum += int(i)
    if x % sum == 0:
        answer = True
    else:
        answer = False
    return answer

- 먼저 입력받은 정수 x의 각각 자릿수의 합을 구하기 위해, 문자열로 변환한 다음 리스트로 변환한 것을(총 2번) x_list 에 할당해 주었다.  그런 다음 x_list 만큼 반복하며 각각의 자릿수를 정수형으로 변환하여 더해 총 합인 sum을 구했다.

하샤드 수인지 판별하기 위해 조건문을 사용하여 정수 x 를 x 의 자릿수의 합인 sum 으로 나눈 나머지가 0 이면 answer 를 True 로 지정하고, 그렇지 않을 때는 answer 를 False 로 지정했으며, 최종적으로는 x 가 하샤드 수인지 아닌지의 결과를 담고있는 answer 를 리턴하게 했다.