[알고리즘 풀이] 프로그래머스 LV1 '하샤드 수'

terry960302·2019년 2월 3일
0
post-thumbnail

문제설명

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

예시

  • x = 10
    자릿수의 합은 1이고 10은 1로 나누어 떨어지므로 return true
  • x = 12
    자릿수의 합은 3이고 12는 3으로 나누어 떨어지므로 return true
  • x = 11
    자릿수의 합은 2이고 11은 2로 나누어떨어지지 않으므로 return false

해설

def solution(x):
    sum = 0
    for i in str(x):
        sum += int(i)
    if x%sum == 0:
        return True
    else:
        return False
  1. 자릿수의 합을 구하기 위해 str을 이용해서 x를 문자열로 바꿉니다. 그리고 반복문을 이용해서 자릿수를 하나씩 뽑아내서 sum에다가 더해줍니다. 결국 sum = 자릿수의 합
  1. 자릿수의 합이 x로 나누어 떨어지는 것을 판단하기 위해서 x%sum을 해줍니다.

  2. 나누어떨어지면(==0) return True, 아니면 나누어떨어지지 않으므로 return False

채점결과

profile
안드로이드 네이티브 앱 개발과 파이썬 공부중인 문과전공 대학생입니다 :)

0개의 댓글