하샤드 수

수이·2025년 3월 12일
0

🟢 코드카타 / PYTHON

목록 보기
21/46
post-thumbnail

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
문제링크

풀이
1. x를 문자열로 변환
2. 한 자리씩 빈 리스트에 추가
3. 리스트 전체 합계 구하기
4. x / 전쳬합계 = 나머지 0 이면 T, 아니면 F

def solution(x):
    str_x = str(x) # 1
    l = []
    
    for i in str_x:
        l.append(int(i)) # 2
    
    total = sum(l) # 3
    
    if x % total == 0: # 4
        answer = True
    else :
        answer = False
    
    return answer

줄여서 써보자

리스트 컴프리헨션 사용하기

def solution(x):
	l = [int(x) for x in str(n)]
    total = sum(l)
    
    return n % total == 0

다른사람 풀이

def Harshad(n):
    return n%sum(int(x) for x in str(n)) == 0

진짜 간단하다;;
if - else문이 필요 없는 게 return ~ == 0 이것 자체가 불린이기 때문 어흑흑

0개의 댓글

관련 채용 정보