코린이의 소소한 공부노트

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

코딩테스트 풀이/JAVA

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

무지맘 2022. 11. 23. 11:35

1. Input

1) 자연수 x

 

2. Output

1) x가 하샤드 수이면 true, 아니면 false 반환

2) x의 자릿수의 합으로 x가 나누어떨어질 때 x는 하샤드 수이다.

 

3. Constraint

1) x1 이상 10,000 이하

 

4. Example

Input: x=11 -> Output: false

Input: x=12 -> Output: true

설명:

- 11(1+1=)2로 나누어 떨어지지 않는다.

- 12(1+2=)3으로 나누어 떨어진다.

 

5. Code

1) 첫 코드(2022/??)

int sum=0, num=x;
boolean answer = true; // 한 자리수는 무조건 하샤드 수

if(num>=10){ // 두 자리수부터 확인
    while(true){
        sum += num%10; // num의 일의 자리의 수
        num = (int)(num/10); // 소수점을 앞으로 땡겨 십의 자리를 일의 자리로
        if(num<1) break;
    }
    if(sum!=0) // divided by zero 방지
        answer = x%sum==0 ;
}
return answer;