최대 1 분 소요

https://school.programmers.co.kr/learn/courses/30/lessons/12947

주어진 양의 정수 x의 자릿수 합으로 x가 나누어떨어지면 하샤드수이다. 하샤드 수인지 아닌지 판별하는 함수를 작성하는 문제이다..

내풀이

def solution(x):
    answer = True
    digit_list = list(str(x))
    digit_sum = 0
    for digit in digit_list :
        digit_sum += int(digit)
    
    if x % digit_sum == 0 :
        return answer
    else :
        answer = False
        return answer

다른 사람의 풀이

def solution(n) :
    return n % sum(int(x) for x in str(n)) == 0

내 풀이에서 각 자리수를 string으로 만들고 리스트로 만든 뒤 반복문에서 일일이 더해주는 과정을 n % sum(int(x) for x in str(n))

이 한줄로 풀었다

n = 11
print(list(int(x) for x in str(n)))
# 출력 결과 [1, 1]	

댓글남기기