본문 바로가기
스터디(programmers)

Java] 프로그래머스 lv.1, 하샤드 수

by 김마리님 2023. 1. 27.

https://school.programmers.co.kr/learn/courses/30/lessons/12947

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

더보기
    /**
     * 풀이
     * 제안 받은 값의 모든 자릿수를 더한 값을 만든다.
     * 제안 받은 값에 모든 자릿수를 더한 값을 나눈다.
     * 나머지가 0이 된다면 true를 출력하고, 나머지가 0이 되지 않는다면 false를 반환한다.
     */

    /**
     * 수도코드
     * 자릿수 더한 값;
     * 자릿수 더하면서 변경될 값 = 입력받은 값;
     * while(자릿수 더하면서 변경될 값 > 0) {
     *     자릿수 더한 값 += 자릿수 더하면서 변경될 값 / 10 (여기서 가장 오른쪽의 값을 더하게 됨)
     *     자릿수 더하면서 변경될 값 /= 10 (10을 나눔으로써, 가장 오른쪽에 있는 값이 소수로 변하게 되고, int의 부동소수점 성격에 따라 버려짐)
     * }
     *
     * return ( 입력받은 값 % 자릿수 더한 값 == 0)
     *
     */
     
class Solution {
    public boolean solution(int x) {
        int plusInt = 0;
        int digitInt = x;

        while(digitInt > 0){
            plusInt += digitInt % 10;
            digitInt /= 10;
        }

        return (x % plusInt == 0);
    }
}

 

반응형