본문 바로가기
데이터 분석/Python

파이썬) 하샤드 수 / sum 함수 주의점

by engwoon 2024. 12. 24.

코드카타 21번 

 

문제

자연수 `x`를 입력받아 `x`가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성하라.

 

📌하샤드 수 `x`의 조건: `x`의 자릿수의 합으로 x가 나누어져야 함.

ex) 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수.

 

정답

def solution(x):
  number= sum(int(i) for i in str(x)) #각 자리 숫자 더한 값
  if x % number == 0:
    return True
  else:
    return False
  • `sum(int(i) for i in str(x))` 
    • `str(x)`의 각 문자 `i`를 정수로 변환하고, 이를 합산한다.
    • 예: `x = 10` → `str(x) = '10'` → `int(i)` = `1, 0` → 합 = `1 + 0 = 1`
  • `sum()` 함수
    • 반복 가능한 객체(list, tuple, set, etc.`)에서만 사용할 수 있다.
    • 문자열 형태는 sum 함수 적용 안됨 --> `int(i)` 로 변경