12947. 하샤드 수
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.
예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.
자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
입출력 예
arr | return |
10 | true |
12 | true |
11 | false |
13 | false |
풀이
def solution(x):
x_list = list(str(x))
sum = 0
for i in x_list:
sum += int(i)
if x % sum == 0:
answer = True
else:
answer = False
return answer
- 먼저 입력받은 정수 x의 각각 자릿수의 합을 구하기 위해, 문자열로 변환한 다음 리스트로 변환한 것을(총 2번) x_list 에 할당해 주었다. 그런 다음 x_list 만큼 반복하며 각각의 자릿수를 정수형으로 변환하여 더해 총 합인 sum을 구했다.
하샤드 수인지 판별하기 위해 조건문을 사용하여 정수 x 를 x 의 자릿수의 합인 sum 으로 나눈 나머지가 0 이면 answer 를 True 로 지정하고, 그렇지 않을 때는 answer 를 False 로 지정했으며, 최종적으로는 x 가 하샤드 수인지 아닌지의 결과를 담고있는 answer 를 리턴하게 했다.
'코딩테스트 문제풀이(Python)' 카테고리의 다른 글
[백준] 15552번 문제풀이 (파이썬) (0) | 2022.06.27 |
---|---|
[프로그래머스] 평균 구하기 문제풀이 (파이썬) (0) | 2022.06.27 |
[백준] 4948번 문제풀이 (파이썬) (0) | 2022.06.26 |
[백준] 9020번 문제풀이 (파이썬) (0) | 2022.06.26 |
[프로그래머스] 핸드폰 번호 가리기 문제풀이 (파이썬) (0) | 2022.06.26 |