[Programmers] 하샤드 수 -JAVA

Lee 🧙🏻‍♂️·2021년 8월 23일
0
post-thumbnail

📄 문제 설명

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

📑 제한 조건

  • x는 1 이상, 10000 이하인 정수입니다.

🔐 입출력의 예

arrreturn
10true
12true
11false
13false

👨🏻‍💻 내가 작성한 코드

import java.util.*;
class Solution {
    public boolean solution(int x) {
         boolean answer = true;
	 ArrayList<Integer> list = new ArrayList<>();
	 int sum = 0;
	 int tmp = x;
	        
	 while(tmp > 0){ // ex) tmp = 123
	     list.add(tmp % 10); // 123 % 10 = 3; 
	     tmp /= 10; // 123 / 10 = 12; ...
	 }
	 for(int i = 0; i < list.size(); i++) {
	      sum += list.get(i);
	 }
	 if(x % sum != 0) { // 123 % 6 = false;
	 	answer = false;
         }
	 return answer;
    }
}

👨🏻‍🏫 코드 풀이

  • while에서 자릿수를 나눠준다.
  • for에서 자릿수끼리 더해준다.
  • if에서 하샤드 수인지 확인을 한다.
profile
더 나은 개발자가 되기 위해 기록합세!🧙🏻‍♂️

0개의 댓글