PROGRAMMERS Python Lv1. 하샤드 수

최대 1 분 소요

이번 문제는 하샤드 수이다.

나의 코드는 다음과 같다.

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

이 문제의 풀이는 다음과 같이 진행했다.

  1. 주어진 x는 int이므로 바로 for문을 사용하지 못하므로

list(str())을 이용해서 for문을 사용하게 한다.

  1. sum 에 각 인덱스별 숫자를 더해준다.

  2. 나머지가 0일 경우, True 그렇지 않다면 False를 출력한다.

다른 사람의 풀이 중에 한 줄짜리가 있어서 가져왔다.

def solution(x):
  return n % sum([int(c) for c in str(n)]) == 0

이 코드에서는 for 문의 in을 통해 각각의 숫자를 더하게 해줬고,

무엇보다도 마지막에 ==를 사용해서 True와 False를 지정하지 않아도

되어 잘 짜여진 것 같다.

댓글남기기