[파이썬 정복기] level 1 - 하샤드 수

_칟닌·2021년 12월 29일
0

프로그래머스

목록 보기
13/15
post-thumbnail

🚩 문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.
예를 들어 18의 자릿수 합은 1 + 8 = 9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.
자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.


❗ 제한 조건

  • x는 1 이상, 10000 이하인 정수입니다.

💡 아이디어
1. 입력받은 x 값을 문자열로 변환 후 list 자료형으로 변경한다.
2. 리스트의 길이만큼 for문을 돌리면서 각 자릿수의 합을 더해준다.
3. 삼항 연산자를 사용하여 x의 값이 sum의 값으로 나누었을 때 0인 경우엔 true 아닌 경우엔 false를 return 해준다.


⌨️ 나의 해답

def solution(x) :
    s = list(str(x))
    sum = 0
    
    for i in range(0, len(s)) :
        sum += int(s[i])
        
    return True if x % sum == 0 else False

이 문제는 처음에 풀었던 자릿구 더하기 문제와 같은 방법을 사용하여 푸는 문제이다.

자릿수 더하기 문제를 풀었을 때는 코드를 비효율적으로 쓴 경향이 있었는데 이번 문제를 풀면서 더 짧은 코드를 작성하게 되었다.

profile
성장하는 대학생 개발자🙋‍♀️

0개의 댓글