[프로그래머스-레벨1]하샤드 수 - python

iamjinseo·2022년 8월 23일
0

문제풀이-Python

목록 보기
87/134

https://school.programmers.co.kr/learn/courses/30/lessons/12947
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
제한 조건
x는 1 이상, 10000 이하인 정수입니다.
입출력 예
arr return
10 true
12 true
11 false
13 false
입출력 예 설명
입출력 예 #1
10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다.

입출력 예 #2
12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다.

입출력 예 #3
11의 모든 자릿수의 합은 2입니다. 11은 2로 나누어 떨어지지 않으므로 11는 하샤드 수가 아닙니다.

입출력 예 #4
13의 모든 자릿수의 합은 4입니다. 13은 4로 나누어 떨어지지 않으므로 13은 하샤드 수가 아닙니다.

풀이

def solution(x):
    sum=0 #자리수 합
    a = x #x
    while a: #자리수 합 구하기
        sum += a%10
        a //= 10
    return True if x%sum==0 else False

결과

남의 코드

 return n % sum([int(c) for c in str(n)]) == 0

str(), int()써서 한 줄로 코딩 할 수 있는데 굳이 그렇게 하고 싶지 않았음....

시간도 쬐끔 더 김


https://velog.io/@iamjinseo/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%A0%88%EB%B2%A81%EC%9E%90%EB%A6%BF%EC%88%98-%EB%8D%94%ED%95%98%EA%B8%B0-python
이거랑 비슷함

profile
일단 뭐라도 해보는 중

0개의 댓글