알고리즘/코딩테스트
[프로그래머스] 하샤드 수
옥탑방고래
2022. 3. 26. 14:37
문제설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
제한조건
x는 1 이상, 10000 이하인 정수입니다.
입출력 예
arr | return |
10 | true |
12 | true |
11 | false |
13 | false |
풀이
class Solution {
public boolean solution(int x)
{
return (x % getHarshadSum(x) == 0) ? true : false;
}
private int getHarshadSum(int paraX)
{
int tmp = 0;
while(paraX >= 1)
{
tmp += paraX % 10;
paraX /= 10;
}
return tmp;
}
}
우선 양의 정수의 자릿수들을 더한값을 구하기 위해 getHarshadSum 메소드를 생성합니다.
양의 정수에서 자릿수를 구하기 위해서 반복문을 통해 x값을 10으로 나누게 된다면 각 자릿수가 나오게됩니다.
10으로 나누었을때 0이하가 나온다면 모든 자릿수를 계산한것이기 때문에 멈추고 합친값을 리턴합니다.