728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12947
JS
문제
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
제한 조건
x는 1 이상, 10000 이하인 정수입니다.
계획
1. 정수를 자리수 마다 배열로 만들고 배열의 합을 구한다.
2. 합한 수로 정수 x를 나누어(%) 나머지가 0이면 true 반환, 아니면 false 반
참고, 풀이
히샤드 수 뜻 : 하샤드 수 또는 니번 수는 주어진 진법에서 그 수의 각 자릿수 숫자의 합으로 그 수가 나누어지는 자연수를 말한다. 즉 이말은 하샤드 수의 정의가 자기자신이 각 자리숫자의 합의 몇 배가 되어서 약수와 배수의 관계가 되는 수를 일컫는 말이다.
답
function solution(x) {
//1. 정수를 자리수 마다 배열로 만들고 배열의 합을 구한다.
let n = String(x)
.split("")
.reduce((acc, cur) => acc + +cur, 0);
//2. 합한 수로 정수 x를 나누어(%) 나머지가 0이면 true 반환, 아니면 false 반환
return x % n === 0 ? true : false;
}
코드 간략화하기
function solution(x) {
return x % String(x).split("").reduce((acc, cur) => acc + +cur, 0) === 0;
}
삼항 연산자 제거하기
x % n === 0 자체가 Boolean 값을 반환하므로 ? true : false는 불필요
출처
◆ C
더보기
◆ C
계획
참고, 풀이
답
//
코드 간략화하기
출처
◆ C#
더보기
◆ C#
계획
참고, 풀이
답
//
코드 간략화하기
출처
◆ C++
더보기
◆ C++
계획
참고, 풀이
답
//
코드 간략화하기
출처
'내일배움 과제 > 코딩테스트' 카테고리의 다른 글
알고리즘 23번 콜라츠 추측 (0) | 2024.11.27 |
---|---|
알고리즘 22번 두 정수 사이의 합 (0) | 2024.11.27 |
알고리즘 20-추가공부 (0) | 2024.11.25 |
알고리즘 19번 - 추가공부 (0) | 2024.11.22 |
알고리즘 18번 - 추가공부 (0) | 2024.11.21 |