프로그래머스 문제(Java) No.11<하샤드 수>

오하수·2026년 1월 25일

이 문제는 어떤 정수 x가 하샤드 수가 되려면 x가 자기 자릿수의 합으로 나누어 떨어져야 합니다.

정수 x를 받아서 하샤드 수면 true 아니면 false를 반환하게 하는 문제입니다.

자릿수의 합을 구하기 위해 x % 10 -> 마지막 자릿수를 추출하고 x / 10 한 값을 더하여 answer 변수에 넣고 x는 원래 숫자를 보존하기 위해 sum 변수에 넣어두고 마지막에 sum % answer == 0이 되면 true 아니면 false를 반환하게 한다.


class Solution {
  public boolean solution(int x) {
    int answer = 0;
    int sum = x;
    while (x > 0){
      answer += x%10;
      x /= 10;
    }

    if (sum % answer == 0){
      return true;
    }
    return false;
  }
}

main 함수도 Solution 클래스 객체를 생성하고 solution 메서드가 boolean 반환타입으로 명시되어 있으므로 main 함수에서 참/거짓을 판단하는 boolean을 써야합니다.
-> int로 쓰면 오류

public class Main{
  public static void main(String[] args) {
    Solution sol = new Solution();
    boolean result = sol.solution(11);
    System.out.println(result);
  }
}

11 -> 1 + 1 =2이다. 11 / 2을 하면 0이 아니므로 하샤드 수가 아님 -> false 반환

profile
오늘하루도수고하세용~

0개의 댓글