문제
나의 풀이
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 |