개발의 흔적
알고리즘 테스트# 3. 하샤드 수 본문
안녕하세요.
프로그래머스에 있는 "하샤드 수" 알고리즘 문제를 풀어보겠습니다.
문제 : 양의 정수 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
'코딩테스트 연습' 카테고리의 다른 글
알고리즘 테스트# 6. 콜라츠 추측 (0) | 2020.07.20 |
---|---|
알고리즘 테스트# 5. 최대공약수와 최소공배수 (0) | 2020.07.20 |
알고리즘 테스트# 4. 평균 구하기 (0) | 2020.07.20 |
알고리즘 테스트# 2. 핸드폰 번호 가리기 (0) | 2020.07.16 |
알고리즘 테스트# 1. 직사각형 별찍기 (0) | 2020.07.14 |