<프로그래머스, 하샤드 수>

Minwoong Kim·2022년 10월 5일
0

Get out of my comfort zone

목록 보기
12/12

2022-Oct-5, today getting of my comfort zone.

해당 내용은 학습 목표로 작성되었으며 추후 문제가 될 시, 즉시 삭제 조치하도록 하겠습니다.

문제 설명

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

자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해라. 단, x는 1 이상, 10000 이하인 정수이다.

Comfort zone

x라는 정수를 각 자리 수 별로 분리할 필요가 있는데, 주어진 x는 숫자 타입의 데이터이기 때문에 String type으로 먼저 변환해 주었다.

그 후, split('')을 사용하여, 각 자리 수 별로 쪼갠 배열을 생성하였고,map 을 활용하여 다시 숫자로 바꾸어 주었다.

마지막으로, reduce를 활용하여 총 합을 xArraySum에 return 하였고 삼항연산자를 활용하여 x를 xArraySum으로 나눈 나머지가 0이면 true를, 아니라면 false를 answer에 할당하도록 하였다.

Get out of comfort zone

위와 동일한 풀이이다. 다만, 문자 타입으로 바꾼 값을 다시 정수 타입으로 바꿀 때 parseInt라는 내장 함수를 사용하였다. 해당 메서드 알아두자.

느낀점

  1. split('')은 쪼개기만 하는게 아니라, 쪼갠 후에 배열에 담아준다. [ Myarr.split(' ') ] 으로 쓰면, 이중 배열이 된다.

  2. parseInt 내장 함수 알아두자. 활용도가 있을 것 같다.


parseInt() 함수는 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환합니다.

parseInt(2)이면 이진법 수로 바꿔준다는 것
출처 : MDN


profile
Get out of my comfort zone

0개의 댓글