728x90
반응형
💻 프로그래머스 코딩 테스트 – 하샤드 수
🧩 문제 설명
양의 정수 x가 하샤드 수인지 판단하는 문제입니다.
하샤드 수란 어떤 수가 자신의 자릿수의 합으로 나누어 떨어지는 수를 의미합니다.
예를 들어, 18은 각 자릿수의 합이 1 + 8 = 9이고, 18은 9로 나누어떨어지므로 하샤드 수입니다.
✔️ 제한 사항
- x는 1 이상, 10000 이하인 자연수입니다.
🧠 문제 풀이 접근
- 숫자 x를 문자열로 변환하여 자릿수마다 분리합니다.
- 각 자릿수를 정수로 변환하여 합을 구합니다.
- 원래의 수 x가 자릿수의 합으로 나누어떨어지는지 확인합니다.
- 나누어떨어지면 true, 아니면 false를 반환합니다.
🧾 코드 설명 (C#)
using System;
using System.Linq;
public class Solution {
public bool solution(int x) {
// 정수를 문자 배열로 변환 (예: 123 -> ['1','2','3'])
char[] c = x.ToString().ToCharArray();
// 각 문자를 정수로 변환 후 합산
int sum = c.Sum(i => int.Parse(i.ToString()));
// x가 자릿수의 합(sum)으로 나누어떨어지는지 확인
return x % sum == 0 ? true : false;
}
}
🔍 코드 상세 분석
- x.ToString().ToCharArray()
→ 정수 x를 문자열로 변환한 후 각 문자를 문자 배열로 분해합니다. - c.Sum(i => int.Parse(i.ToString()))
→ 문자 하나하나를 다시 정수로 변환한 후 Sum()으로 전체 자릿수의 합을 구합니다. - return x % sum == 0 ? true : false;
→ 하샤드 수의 조건대로 x가 자릿수 합으로 나누어떨어지는지 확인 후 결과 반환.
✅ 최종 결과
이 코드는 하샤드 수 여부를 정확하게 판단해줍니다. LINQ를 활용해서 코드가 간결하면서도 가독성이 좋습니다.
728x90
반응형
'C# > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 정수 내림차순으로 배치하기 (0) | 2025.04.21 |
---|---|
[프로그래머스] 정수 제곱근 판별 (0) | 2025.04.21 |
2021.07.23 C# 내적 (0) | 2021.07.23 |
2021.07.23 C# 음양 더하기 (0) | 2021.07.23 |
2021.07.22 C# 약수의 개수와 덧셈 (0) | 2021.07.22 |
댓글