양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
문제링크
풀이
1. x를 문자열로 변환
2. 한 자리씩 빈 리스트에 추가
3. 리스트 전체 합계 구하기
4. x / 전쳬합계 = 나머지 0 이면 T, 아니면 F
def solution(x):
str_x = str(x) # 1
l = []
for i in str_x:
l.append(int(i)) # 2
total = sum(l) # 3
if x % total == 0: # 4
answer = True
else :
answer = False
return answer
줄여서 써보자
리스트 컴프리헨션 사용하기
def solution(x):
l = [int(x) for x in str(n)]
total = sum(l)
return n % total == 0
다른사람 풀이
def Harshad(n):
return n%sum(int(x) for x in str(n)) == 0
진짜 간단하다;;
if - else문이 필요 없는 게 return ~ == 0 이것 자체가 불린이기 때문 어흑흑