-
프로그래머스 - 하샤드 수프론트엔드/프로그래머스 2024. 2. 18. 22:53728x90
문제
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
정답
function solution(x) { const number = x.toString().split("").map(Number) let sum = 0; for (let i = 0; i < number.length; i++){ sum += number[i] } if(x % sum === 0) { return true; } else { return false; } }
- x.toString(): 정수 x를 문자열로 변환합니다.
- .split(""): 문자열을 각 자릿수별로 분리하여 배열로 만듭니다. 예를 들어, 18이 입력으로 주어지면 ["1", "8"]가 됩니다.
- .map(Number): 각 문자열을 숫자로 변환하여 새로운 배열을 만듭니다. ["1", "8"]가 [1, 8]로 변환됩니다.
- let sum = 0;: 자릿수의 합을 저장할 변수 sum을 초기화합니다.
- for (let i = 0; i < number.length; i++) { sum += number[i] }: 배열의 각 요소를 순회하면서 숫자를 더하여 자릿수의 합을 계산합니다.
- if (x % sum === 0) { return true; } else { return false; }: x가 자릿수의 합으로 나누어 떨어지면 true를, 그렇지 않으면 false를 반환합니다.
728x90'프론트엔드 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 음양 더하기 (0) 2024.02.18 프로그래머스 - 두 정수 사이의 합 (0) 2024.02.18 프로그래머스 - 정수 내림차순으로 배치하기 (0) 2024.02.18 프로그래머스 - 문자열 내 p와 y의 개수 (0) 2024.02.18 프로그래머스 - 자연수 뒤집어 배열로 만들기 (0) 2024.02.18