코드카타 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)` 로 변경
'데이터 분석 > Python' 카테고리의 다른 글
파이썬) zip 함수 / 리스트 병렬로 묶어주기 (1) | 2024.12.27 |
---|---|
파이썬) 정수 내림차순으로 배치하기/ join() 함수 (2) | 2024.12.19 |
파이썬) 자연수 뒤집어 배열로 만들기/ 리스트 컴프리헨션 (0) | 2024.12.17 |
파이썬 과제 review (0) | 2024.12.16 |
파이썬) 함수와 변수, 인수, 매개변수 (0) | 2024.12.12 |