양의 정수 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;
}
}
'프로그래머스 코딩테스트 연습' 카테고리의 다른 글
[프로그래머스 코테 C#] Lv1. 원하는 문자열 찾기 (1) | 2024.03.27 |
---|---|
[프로그래머스 코테 C#] Lv1. x만큼 간격이 있는 n개의 숫자 (0) | 2024.03.21 |
[프로그래머스 코테 C#] Lv1. 약수의 합 (1) | 2024.03.17 |
[프로그래머스 코테 C#] Lv1. 문자열을 정수로 바꾸기 (0) | 2024.03.17 |
[프로그래머스 코테 C#] Lv1. 나머지가 1이 되는 수 찾기 (0) | 2024.03.17 |