본문 바로가기
Online-Judge/Programmers

[Programmers] Python 하샤드 수

by nyangzzi 2022. 3. 18.
반응형

https://programmers.co.kr/learn/courses/30/lessons/12947

 

코딩테스트 연습 - 하샤드 수

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하

programmers.co.kr

 


 

 

1. 모든 자리를 더할 변수인 y를 선언해주고, xx 변수를 이용하여 y에 모든 자리를 더해준다.

나머지 연산을 통해 일의 자리부터 나머지를 더하고, 더한 만큼 다시 몫을 나눠주는 것을 반복하여 구할 수 있다.

파이썬에서는 자동으로 소숫점 아래 자리가 버려지지 않기 때문에, // 으로 나누어줘야한다.

xx = x
y = 0
while xx > 0:
	y += xx % 10
	xx //= 10

 

 

2. x % y 나머지 연산을 통해 만약 나누어 떨어지지 않는다면 answer을 False로 변환하여 리턴한다.

if x % y != 0:
	answer = False

 

 


 

[전체 코드]

def solution(x):
    answer = True
    
    xx = x
    y = 0
    while xx > 0:
        y += xx % 10
        xx //= 10
    
    if x % y != 0:
        answer = False
    
    return answer
반응형

댓글