하샤드 수

장현웅·2023년 8월 30일
0

기본 코드

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 라는 것을 깨닫고 쉽게 문제풀이를 할 수 있었다. 

0개의 댓글