알고리즘/programmers[1]

[프로그래머스] 하샤드 수: python3

fladi 2022. 1. 16. 00:38
728x90
def solution(x):
    sum = 0
    str_x = str(x)
    for s in str_x:
        sum += int(s)

    if (x >= sum):
        if (x % sum == 0):
            return True

    return False

<내 풀이 분석>

1, 값을 str로 받아 자릿수들을 모두 더해준다.

2. 더한 값이 원래 값보다 작은지 확인한 후, 나누어떨어지는지 확인하여 적당한 값을 return 해준다.

(첫 번째 if 문은 필요없었던 것 같다. 항상 자릿수를 더한 값보다 원래 값이 클 수밖에 없으니 말이다.)

 

 

def solution(x):
        
    if (x % sum([int(s) for s in str(x)]) == 0):
        return True
        
    return False
solution = lambda x: (x % sum([int(s) for s in str(x)]) == 0)

sum이라는 좋은 함수를 잊고 있었다. sum을 이용하고 코드를 우겨넣어서 짧게 만들면 한 줄로도 구현이 가능했다.

파이썬을 이용하면 코드 길이가 짧아져서 너무 좋다.

728x90