포시코딩

[프로그래머스][Lv.1] 하샤드 수 본문

자료구조알고리즘/문제풀이

[프로그래머스][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