공부/알고리즘&자료구조

항해99 문제28번풀이 (하샤드 수,프로그래머스)

youngble 2021. 11. 11. 11:51

https://programmers.co.kr/learn/courses/30/lessons/12947

 

코딩테스트 연습 - 하샤드 수

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하

programmers.co.kr

 

 

내가푼 방법:

접근

두자리수의 각각 숫자를 더한값에 원래 값을 나눴을때 나머지가 있는지 없는지에 따라 true, false를 반환하는것을 생각

정수로 받기때문에, 각 숫자를 나누기위해서 string으로 만들어주고, 자릿수마다 들어간 값을 하나하나 더한것을 기존 숫자와 나눈것에서 반환값을 만듬, 제한을 체크 1이상 10000이하

풀이

2줄.

자릿수를 나누고 그 자릿수에 해당하는 값들을 더한것을 담을 변수 선언

4줄.

제한규칙 입력값이 1이상 10000이하를 if문을 통해 체크

5줄~6줄.

입력값이 number 타입이므로 string으로 바꾸고 reduce를 이용해 각 index에 가진 값들을 다시 number로 바꾼다음 더해주고, 최종적으로 나온 arr2를 arr과 나눠 나눈 나머지값이 0이면 true, 아니면 false 리턴