하샤드 수
문제 링크
- 나의 풀이
def solution(x):
element = list(str(x))
sum1 = 0
for i in range(len(element)):
sum1 += int(element[i])
if x % sum1 == 0:
answer = True
else :
answer = False
return answer
- int type으로 입력되는 input 값의 각 자릿수 숫자의 합계를 구하는 것이 이 문제의 key point라고 생각하였다.
- x값을 string type의 리스트 형식으로 전환하여 element변수에 할당하였다.
- for 문과 리스트의 요소(x의 각 자릿수 숫자)들에 부여된 index를 사용하여 요소들을 int type으로 다시 전환하여 합계를 구하였다.
- if 문을 통해 하샤드 수가 맞는지 판단!
- 다른사람의 풀이
def solution(x):
return x % sum([int(c) for c in str(x)]) == 0
- 문제를 풀이한 원리는 나의 풀이와 동일하다고 할 수 있으나 훨씬 간결한 코드 구성을 보여준다.