기본 코드
def solution(x):
answer = True
return answer
스캐치
- 자릿수의 합을 변수로 표현해주고
- for 반복문으로 str(x)를 반복해서 int(i)를 더한 합으로 x를 나눈 값이 0이면 True, 아니면 False 반환
코드 풀이
def solution(x):
answer = True
sum_n = 0
for i in str(x):
sum_n = sum_n + int(i)
if x % sum_n == 0:
answer = True
else:
answer = False
return answer
회고
처음에는 문제를 이해하고 식으로 어떻게 표현해야하나 고민이었다. 그래서 str(x)를 반복하면서 int(i)의 합으로 x를 나눠보기로 했다.
def solution(x):
answer = True
for i in str(x):
if x%sum(int(i)) == 0:
answer = True
answer = False
return answer
print(solution(x)) # TypeError: 'int' object is not iterable
숫자형은 반복가능하지 않다고 한다. iterable한 자료형들도 따로 공부를 해야할 것 같다.
생각을 해보니 이 문제의 핵심 key는 하샤드 수를 찾는 것이 아니고 True or False 라는 것을 깨닫고 쉽게 문제풀이를 할 수 있었다.