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
'알고리즘 > programmers[1]' 카테고리의 다른 글
[프로그래머스] [1차] 다트 게임 다른 풀이 (0) | 2022.01.16 |
---|---|
[프로그래머스] [1차] 다트 게임: python3 (0) | 2022.01.16 |
[프로그래머스] 신고 결과 받기: python3 (0) | 2022.01.16 |
[프로그래머스] 내적 (0) | 2022.01.10 |
[프로그래머스] 음양 더하기 (0) | 2022.01.10 |