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

2024. 6. 25. 15:14·TIL 🔖/코딩테스트

문제설명

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


제한사항

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

나의 풀이 

class Solution {
    public boolean solution(int x) {
        boolean answer = true; //조건을 만족하지 않으면 false로 변경
        
        //정수 x를 문자열로 변환, 각 문자를 char 배열로 변환 
        char[] ch = String.valueOf(x).toCharArray();
        int sum = 0; 
        
        for (int i = 0; i < ch.length; i++) {
            sum += Integer.parseInt(String.valueOf(ch[i])); // 각 자리 숫자를 더함 
        }
        
        if (x % sum == 0) {
            return answer;
        } else {
            answer = false;
        }
        
        return answer;
    }
}

참고할 만한 다른 사람의 풀이

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

 

'TIL 🔖/코딩테스트' 카테고리의 다른 글
  • [프로그래머스/JAVA] 콜라츠 추측
  • [프로그래머스/JAVA] 두 정 수 사이의 합
  • [프로그래머스/JAVA] 정수 내림차순으로 배치하기
  • [프로그래머스/JAVA] 정수 제곱근 판별
fargoe
fargoe
    fargoe
    fargoewave
    fargoe
    GitHub
    전체
    오늘
    어제
    • 분류 전체보기 (166)
      • TIL 🔖 (140)
        • TIL (69)
        • 코딩테스트 (71)
      • DEV (14)
        • Java & Spring (7)
        • MySQL (3)
        • Git&Github (4)
      • 개발지식 (10)
        • 알고리즘 (2)
        • 자료구조 (8)
        • CS (0)
      • 3D (1)
        • Unity (1)
      • ETC (0)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
fargoe
[프로그래머스/JAVA] 하샤드 수
상단으로

티스토리툴바