본문 바로가기
프로그래머스 코딩테스트 연습

[프로그래머스 코테 C#] Lv1. 하샤드 수

by 노재두내 2024. 3. 17.

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

 

[나의 풀이]

using System;

public class Solution {
    public bool solution(int x) {
        bool answer = true;
        int mok=0;
        int first=x;
        while(x>0){
            mok+=x%10;
            x=x/10;
        }
        if(first%mok==0){
            answer=true;
        }
        else{
            answer=false;
        }
        return answer;
    }
}

이전에 자릿수 더하기 문제한거를 생각해서 10으로 나머지 연산을 먼저 실행하고,

나머지들을 더한것이 mok임

x값은 바뀌니까 처음 초기값을 first변수에 저장한 후 first%mok을 해서 나머지가 0이면 즉 나눠졌다면 하샤드 수 이므로 true를 return, 아니면 else false를 return한다


[다른사람 풀이]

using System.Linq;

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

        var temp = x.ToString().ToList().Select(y => int.Parse(y.ToString())).Sum();

        if (x % temp != 0)
            answer = false;

        return answer;
    }
}