프로그래머스 풀이/level1

[Programmers] level 1) 문제 '하샤드 수' 풀이

진기명기 2023. 5. 16. 13:01
🫠 Programmers (level 1) 👉🏻 문제 11번 (하샤드 수)

✏️ 문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.
예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.
자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해 주세요.
✏️ 제한 조건
x는 1 이상, 10000 이하인 정수입니다.
✏️ 입출력 예
x          return
10        true
12        true
11        false
13        false

 

 

 

 


function solution(x) {
  let arr = (x+'').split('').map((item) => Number(item))
    
  return x % arr.reduce((acc, item) => acc + item, 0) === 0 ? true : false
}
✅ x+''을 통해 문자열 변환 후, split('')으로 배열 생성 👉🏻 배열 요소 Number()로 모두 숫자로 변환
✅ reduce()를 통해 배열 요소 모두 더한 후, x로 나눈 나머지가 0일 때만 true 반환!

 

 

💡 확인할 점

🫠 생각해 보니 x % arr... === 0 자체가 true, false를 반환하기 때문에, 삼항연산자로 조건을 주지 않아도 된다..!
쓸데없는 코드는 작성하지 말자..!! 주의 ❗️