알고리즘/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