✔ 하샤드 수
문제 분석하기
주어진 정수의 자릿수의 합을 구한 후, 이로 나누어 떨어질 경우 true를 반환, 그렇지 않을 경우 false를 반환
손으로 풀어보기
- 주어진 정수의 자릿수의 합 구하기
- 자릿수의 합으로 나누어 떨어질 경우 true를 반환
- 그렇지 않을 경우 false를 반환
슈도코드 작성하기
x(양의 정수)
numbers(x를 문자열로 바꾼 값)
sum(자릿수의 합)
for(i -> numbers의 길이만큼) {
sum에 자릿수를 더하기
}
if(x가 sum으로 나누어 떨어진다면)
true 반환
else
false 반환
코드 구현하기
/**
* 12947) 하샤드_수
*/
public class L027_12947 {
// x(양의 정수)
public boolean solution(int x) {
// numbers(x를 문자열로 바꾼 값)
String numbers = Integer.toString(x);
// sum(자릿수의 합)
int sum = 0;
for (int i = 0; i < numbers.length(); i++) {
// sum에 자릿수를 더하기
sum += Character.getNumericValue(numbers.charAt(i));
}
// x가 sum으로 나누어 떨어진다면
if (x % sum == 0)
// true 반환
return true;
// x가 sum으로 나누어 떨어지지 않는다면
else
// false 반환
return false;
}
// 테스트 케이스
public static void main(String[] args) {
L027_12947 solution = new L027_12947();
int x = 10;
boolean result = solution.solution(x);
System.out.println(result);
}
}
'Coding Test > Java 알고리즘 실전' 카테고리의 다른 글
[12950] 행렬의 덧셈 (0) | 2023.12.28 |
---|---|
[12948] 핸드폰 번호 가리기 (0) | 2023.12.28 |
[12944] 평균 구하기 (0) | 2023.12.28 |
[12943] 콜라츠 추측 (0) | 2023.12.28 |
[12940] 최대공약수와 최소공배수 (0) | 2023.12.28 |