반응형
하샤드 수(harshad number)는 주어진 진법에서 수의 각 자릿수 숫자의 합으로 나눠떨어지는 자연수를 말한다. 인도의 수학자 카프리카가 정의했으며, '기쁨을 준다'는 뜻의 산스크리트어 단어인 harshad에서 유래했다.
(출처 : 꺼무위키)
문제
하샤드 수문제 설명
양의 정수 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 입출력 예 설명
입출력 예 #1
10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다.입출력 예 #2
12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다.입출력 예 #3
11의 모든 자릿수의 합은 2입니다. 11은 2로 나누어 떨어지지 않으므로 11는 하샤드 수가 아닙니다.입출력 예 #4
13의 모든 자릿수의 합은 4입니다. 13은 4로 나누어 떨어지지 않으므로 13은 하샤드 수가 아닙니다.
하샤드 수를 구하는 알고리즘을 짜는 문제!
하샤드 수는 위에 나와있는대로 각 자릿수의 숫자의 합으로 나누어떨어지는 자연수를 말한다.
입출력 예 #1를 예로든다면, 10이라는 숫자가 주어졌을 때
10 -> 1+0 -> 1 > 1로 10을 나눴을 때 나누어 떨어지는가? 를 보면 되는 것이다.
그래서, 문제는 파라미터로 넘어온 숫자가 하샤드 수의 조건을 충족하는지
boolean값으로 반환하면 되는 것이다.
아래는 해답
package list;
public class Programmers_HarshadNumber {
public static boolean solution(int n) {
// 결과를 반환할 answer 선언
boolean answer = true;
// 하샤드 수인지 확인할 파라미터 변수
int harshadNum = 0;
// 파라미터로 넘어온 n값을 배열로 생성해주기 위한 사전 작업(?)
String param = Integer.toString(n);
// 파라미터로 넘어온 n값을 더해주기 위해 배열을 생성해준다
String[] parseArr = param.split("");
// 반복문 실행
for (int i = 0; i < parseArr.length; i++) {
// 하샤드수에 파라미터를 더해준다
harshadNum += Integer.parseInt(parseArr[i]);
}
// 파라미터(n)와 파라미터를 나눈수가 나누어 떨어진다면 하샤드 수
if (n % harshadNum != 0) {
answer = false;
}
// 결과 리턴
return answer;
}
public static void main(String[] args) {
// 파라미터
// boolean result = solution(10); // true
boolean result = solution(11); // false
// 솔루션 값 출력
System.out.print(result);
}
}
흐ㅜㄱ흑... 연휴가 끝이났다..
그래도 10월에도 임시공휴일이 이틀이나 있으니.. 좀만 힘내자
으쌰으쌰
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] Java 프로그래머스 연습문제 약수의 합 문제 풀이 (0) | 2021.10.14 |
---|---|
[Programmers] Java 프로그래머스 월간 코드 챌린지 시즌3 없는 숫자 더하기 해답 (0) | 2021.10.13 |
[Programmers] Java 프로그래머스 레벨1 두 정수 사이의 합 해답 (0) | 2021.09.14 |
[Programmers] Java 프로그래머스 레벨1 자연수 뒤집어 배열로 만들기 해답 (0) | 2021.09.11 |
[Programmers] Java 프로그래머스 레벨1 나누어 떨어지는 숫자 배열 해답 (Arrays, ArrayList) (0) | 2021.09.07 |