본문 바로가기
Language/알고리즘 문제풀이

프로그래머스 하샤드 수(Java)

by wakestand 2019. 9. 16.
반응형

사이트명 : 프로그래머스(Programmers)

문제명 : 하샤드 수

언어 : 자바(Java) 

 

하샤드 수를 간단히 설명하면 다음과 같은데

특정 숫자를 받아서 자리수별로 다 쪼갠 후에 합친다

그 다음에 받은 특정 숫자를 쪼개서 합친 수로 나눌 수 있으면 하샤드 수다

 

예를 들어보자면

10을 쪼개면 1, 0인데 합치면 1이다

10을 1로 나눌 수 있으니 이것은 하샤드 수!

true를 반환하면 되고 만약 나누어지지 않을 경우에는 false를 반환하면 된다

 

내 풀이방법은 아래와 같은데

 

우선 받은 int값을 String으로 만든 후에

한글자씩 잘라내서 divisionSum에 합쳐서 넣어준다

 

이후 받은 int 값이 divisionSum 으로 나누어 떨어지면

하샤드 수이므로 true를 반환하고

그렇지 않을 경우에는 false를 반환한다 

 

프로그래머스에 바로 적용 가능한 코드는 아래와 같다

class Solution {
  public boolean solution(int x) {
      boolean answer = true;

      String xStr = String.valueOf(x);
      int divisionSum = 0;

      for(int i = 0; i<xStr.length(); i++) {
          divisionSum = divisionSum + Integer.parseInt(xStr.substring(i, i+1)); // 한글자씩 잘라내서 합침
      }

      if(x % divisionSum != 0) {
          answer = false; // 나누어 떨어지지 않으면 false
      }

      return answer;
  }
}
반응형

댓글