문제

나의 풀이

function solution(x) {
  let array = (x + "").split("");
  let harshad_number = 0;
  array.map((data) => {
    harshad_number += parseInt(data);
  });
  return x % harshad_number == 0 ? true : false;
}

KEY POINT : split(), map() , parseInt()

전달 받은 x 넘버값을 문자열로 바꿔주고 배열로 변환한다음 > 10 > [1],[0] 

map함수를 사용하여 각 배열의 인덱스를 정수로 바꿔서 더한 값을 변수에 담는다.

더한 harshaed_number을 x에 나눠서 나머지값이 0 이면 true 아니면 false 리턴.

 

 

 

 다른 사람 풀이방식

function Harshad(n) {
  let answer = (n + "").split("").reduce((acc, cur) => (acc += Number(cur)), 0);
  return n % answer == 0 ? true : false;
}

현지매니저님께서 코드를 조금 만져주신 부분.

reduce에 acc를 적극 사용 권장하셨다. 저장하는 변수의 느낌으로 사용해보도록 해야겠다.

 

'코딩테스트 입문' 카테고리의 다른 글

최소직사각형  (2) 2022.11.23
항해 99 모의고사 문제  (0) 2022.11.22
콜라츠 추측  (0) 2022.11.21
제일 작은 수 제거  (0) 2022.11.21
정수 제곱근 판별  (0) 2022.11.21

+ Recent posts