🚩 문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.
예를 들어 18의 자릿수 합은 1 + 8 = 9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.
자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
❗ 제한 조건
💡 아이디어
1. 입력받은 x 값을 문자열로 변환 후 list 자료형으로 변경한다.
2. 리스트의 길이만큼 for문을 돌리면서 각 자릿수의 합을 더해준다.
3. 삼항 연산자를 사용하여 x의 값이 sum의 값으로 나누었을 때 0인 경우엔 true 아닌 경우엔 false를 return 해준다.
⌨️ 나의 해답
def solution(x) :
s = list(str(x))
sum = 0
for i in range(0, len(s)) :
sum += int(s[i])
return True if x % sum == 0 else False
이 문제는 처음에 풀었던 자릿구 더하기 문제와 같은 방법을 사용하여 푸는 문제이다.
자릿수 더하기 문제를 풀었을 때는 코드를 비효율적으로 쓴 경향이 있었는데 이번 문제를 풀면서 더 짧은 코드를 작성하게 되었다.