[프로그래머스] 하샤드 수 - python

조대범·2022년 8월 31일
0

코딩테스트

목록 보기
1/1

문제 접근

입력 받은 수에 각 자릿수의 합으로 나누어지면 true 나누어지지 않으면 false을 return 하는 문제이다.

첫 번째 풀이로는 결과를 저장할 boolean 변수, 자릿수의 합을 저장할 int 변수를 선언 및 초기화 한뒤 수를 문자열로 치환해 반복문을 돌며 각 자릿수를 더한뒤 조건식에 맞춰 result에 boolean을 저장한 뒤 return 방식이 생각이 났다.

# 내 풀이 
def solution(x):
    result: boolean = True
    sum: int = 0
    
    for i in str(x):
        sum += int(i)
    if (x % sum):
        result = False
    return result

# 다른 사람의 풀이
def solution(x):
    return x % sum([int(c) for c in str(x)]) == 0

다른 풀이

방식은 비슷 하지만 python답게 문제를 풀어낸 풀이가 있었다.
먼저 sum 함수 안에서 리스트를 통해 for문을 드러내는 것이 아니라 안에 주입을 시킨다.
해당 숫자와 나머지 연산을 하는데 return에서 비교연산자를 이용할 수 있으니 바로 해준다.

profile
세상에 도움이 되는 개발자가 꿈입니다.

0개의 댓글