(JAVA) 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수

2024. 9. 14. 08:09·JAVA 알고리즘

▶ 문제

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

★ 풀이방식
먼저 하샤드 수가 뭔지 몰라서 인터넷 검색을 해봤다. 조금 복잡하다...
공식은 첫 번째로 x의 각 자릿수를 구한다. 이 부분은 String Array를 만들어서 split 하여
for문을 이용해 num 변수에 하나씩 분리했다. 이때 Array나 배열에 특화된 
향상된 for문을 활용하여 분리했다. 그 후에 x의 각 자릿수를 더한 값을 구한 다음에
x를 그 구한 값으로 나눠서 나눠지면 true, 아니라면 false를 반환하는 것이다.

▶ 소스코드

class Solution {
    public boolean solution(int x) {
        boolean answer = true;
        String[] Arr = String(x.split(""));

        int sum = 0;

        for(String num : Arr){
            sum += Integer.parseInt(num);
        }

        if(x % sum == 0) {
            answer = true;
        } else {
            answer = false;
        }
        return answer;
    }
}
  • 실행 시 String Array에서 오류가난다. 아무래도 String 변수에 먼저 담지않고 한번에 처리하려 했으나 안되는거같다. 먼저 String 변수에 담은 후에 Array에 옮겨야 될거같다.

▶ 수정된 소스코드

class Solution {
    public boolean solution(int x) {
        boolean answer = true;
        String str = String.valueOf(x);
        String[] Arr = str.split("");

        int sum = 0;

        for(String num : Arr){
            sum += Integer.parseInt(num);
        }

        if(x % sum == 0) {
            answer = true;
        } else {
            answer = false;
        }
        return answer;
    }
}
  • String 변수에 먼저 담은 후에 split을 진행하니 오류없이 잘 진행되는 모습이다. 이걸 통해 String Array에는 String 변수에 먼저 담은 후에 사용해야 된다는걸 깨달았다.

'JAVA 알고리즘' 카테고리의 다른 글

(JAVA) 실제 정수들의 합을 구하여 return 하도록 함수 완성하기  (0) 2024.09.19
(JAVA) 단어 s의 가운데 글자를 반환하는 함수  (1) 2024.09.19
(JAVA) 콜라츠 추측  (0) 2024.09.15
(JAVA) 두 정수 사이에 속한 모든 정수의 합을 리턴하는 함수  (1) 2024.09.14
(JAVA) 각 자릿수를 큰것부터 작은 순으로 정렬한 정수 리턴 받기  (1) 2024.09.14
'JAVA 알고리즘' 카테고리의 다른 글
  • (JAVA) 단어 s의 가운데 글자를 반환하는 함수
  • (JAVA) 콜라츠 추측
  • (JAVA) 두 정수 사이에 속한 모든 정수의 합을 리턴하는 함수
  • (JAVA) 각 자릿수를 큰것부터 작은 순으로 정렬한 정수 리턴 받기
lastdove
lastdove
lastdove 님의 블로그 입니다.
  • lastdove
    lastdove 님의 블로그
    lastdove
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • Spring (16)
      • JAVA (17)
      • JAVA 알고리즘 (20)
      • Project (5)
      • SQL 문제풀이 (17)
      • Git&Linux (2)
      • Web development(입문) (2)
      • Sparta (1)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
lastdove
(JAVA) 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.