자료구조알고리즘/문제풀이
[프로그래머스][Lv.1] 하샤드 수
포시
2022. 12. 24. 22:29
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12947
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 풀이
def solution(x):
answer = True
sum = 0
x_str = str(x)
for y in x_str:
sum += int(y)
if x % sum == 0:
answer = True
else:
answer = False
return answer
스택처럼 한글자씩 빼면 될까 했는데 그냥 문자열로 바꿔 for문으로 하나씩 읽어 sum 구하고 나눠버렸다.
다른 풀이
def Harshad(n):
return n % sum([int(c) for c in str(n)]) == 0
역시 간단하게 나타내는데에는 리스트 컴프리헨션 만한게 없나보다.
그리고 이 코드를 통해 sum([1, 2, 3, 4]) = 10과 같은 결과를 얻을 수 있는것도 알게 되었다.
결과값으로도 내 코드에서 그냥 return x % sum == 0을 했으면 True or False가 자동으로 떨어졌을텐데
그런 연산을 하나라도 줄이는 부분이 아쉬운 것 같다.
728x90