개발의 흔적

알고리즘 테스트# 3. 하샤드 수 본문

코딩테스트 연습

알고리즘 테스트# 3. 하샤드 수

남들에게 도움을 주는 백엔드 개발자가 되자 2020. 7. 20. 09:57

안녕하세요.

 

프로그래머스에 있는 "하샤드 수" 알고리즘 문제를 풀어보겠습니다.

 

문제 : 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수를 만드세요.

 

 

출력 결과 : 

 

10 true
12 true
11 false
13 false

 

코드 

 

 

* 문제 해설 *

 

숫자 : 10

 

양의 정수를 받은 후 문자열을 자른다. 

 

[0] : 1

[1] : 0

 

배열을 문자열에 저장 후 그 후 문자열을 정수로 변환 시킨후 값을 더한다.

더한값을 처음에 받아온 정수와 계산하여 0으로 나누어 떨어지면 하샤드 수 이다.

 

* 코드 해설 *

 

정수 10값을 문자열로 변환후 변환된 값을 split("")함수를 이용하여 잘라서 배열의 

저장을 합니다.

저장이 끝난 후 바깥쪽 for문에 현재 split("")함수를 이용하여 짜른 배열의 길이만큼 반복을 합니다.

바깥쪽 for문의 반복 조건은 0이므로 현재 str[0]은 1이라는 값이 str1에 값이 대입이됩니다.

그후 배열의 각 인덱스의 값들을 더하기 위해 배열의 값을 정수로 변환합니다.

정수로 변환이 이루어지면 각 값들을 더합니다.

바깥쪽 for문이 정상적으로 종료되면 처음에 받아온 값 % num에 저장된 값이 0으로 나뉘어 떨어지면 true를 반환합니다.

 

 

 

 

 

더좋은 코드가있으면 공유해주세요~

 

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

Comments