Programmers [07]
프로그래머스 문제풀이
프로그래머스 문제풀이
하샤드 수
문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.
예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.
자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
입출력 예
| x | return |
|---|---|
| 10 | true |
| 12 | true |
| 11 | false |
| 13 | false |
입출력 예 설명
입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다.
입출력 예 #2 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다.
입출력 예 #3 11의 모든 자릿수의 합은 2입니다. 11은 2로 나누어 떨어지지 않으므로 11는 하샤드 수가 아닙니다.
입출력 예 #4 13의 모든 자릿수의 합은 4입니다. 13은 4로 나누어 떨어지지 않으므로 13은 하샤드 수가 아닙니다
답안
class Solution {
public boolean solution(int x) {
boolean answer = true;
int num = x;
int sum = 0;
while(num > 0) {
sum += num % 10;
num /= 10;
}
if(x % sum != 0) {
answer = false;
}
return answer;
}
}
boolean 함수가 뭔지 알아보자 boolean type는 1byte 크기로 결과가 참이면 true를, 거짓이면 false를 주는 변수이다.
먼저 while문을 보면 10으로 나눈 값을 가져가면 맨 뒷자리 인 값을 가져갈 수 있다.
그리고 if문에 들어가 sum이 0이 아닐경우 false를 출력하게 되어 문제를 해결할 수 있다.
후기
기본적인 문법과 변수를 더 공부해야 할거같다.