[프로그래머스] 하샤드 수

이한솔·2023년 9월 25일
0
post-thumbnail

✨️ 문제 설명

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

->자세히 보러가기

🎲 자바 풀이

  • 첫번째 풀이
  • class Solution {
       public boolean solution(int x) {
           String str = String.valueOf(x);
           int sum = 0;
           for(char ch : str.toCharArray()){
               sum += ch - '0';
           }
           return x % sum == 0;
       }
    }

  • 두번째 풀이
  • class Solution {
       public boolean solution(int x) {
           return x % String.valueOf(x).chars().map(ch -> ch - '0').sum() == 0;
       }
    }

    풀이설명

    : 입력된 정수 x를 문자열로 변환하고, chars()를 이용해 문자열 스트림으로 변환한다.
    : map(ch ->ch - '0') : 각 문자를 숫자로 변환한다. : sum() : 숫자를 모두 더해 주어진 x를 나눈 나머지가 0이면 True를 아니면 False를 반환한다.
    profile
    개인 공부용

    0개의 댓글