결국엔 또 다른 분의 것을 가지고 문제를 풀었습니다. ㅜㅜ...
참고: https://velog.io/@dragoocho/%EB%B0%B1%EC%A4%80-1065-%EB%B2%88-Node.js-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4
참고한 코드를 바탕으로 함수 틀대로 바꾸어 짜본 코드입니다.
자꾸 함수를 이용해서 문제를 풀어야 한다는 생각에 함수로 틀을 잡고 시작하려니까, 자꾸 어렵게 생각하는 것 같습니다. 일반적으로 제가 풀듯이 푼 다음에, 복잡하게 짜여진 코드를 함수로 정의하여 함수호출하는 방식으로 하면 쉽게 생각이 드는 것 같습니다. 물론, 미리 함수 틀을 다 생각해놓고, 거기에 맞게 코드 짜는게 가장 효율적이지만, 로직이 아직 바로바로 생각 안나서... 이 문제는 답을 찾고, 그 다음에 함수 틀로 만들어보았습니다...(갈 길이 너무나도 멀다...)
1. 두개의 함수가 선언되었고, 마지막 줄에 한수계산 함수에 입력값을 인자로 전달합니다.
2. hansuCalculator 함수로 이동하여 for문이 실행됩니다. 즉, 입력값만큼 반복이 돌고 입력값 이하의 숫자들을 한수의 조건에 알맞는지 구해냅니다.
3. if문의 경우 99까지의 반복까지는 hansu가 1씩 증가합니다. 왜냐하면 두자리 수까지는 두개의 수로 수열을 구할 수 없어 모두 한수로 취급합니다.
4. else문은 100이상의 반복으로 Interval이라는 함수로 이동합니다.
5. numArr에는 인자로 넘어온 값을 문자열로 전환한 값이 저장됩니다.
6. interval1 과 interval2 는 numArr의 각 인덱스 마다의 차를 저장합니다.
이 말은 즉, 주어진 값의 각 자리마다의 차를 구하는 것입니다.
예를 들어, 357이라는 값이 있으면, numArr[0] = 3,numArr[1] = 5,numArr[2] = 7 이 됩니다. 그 값들을 Number를 통해 정수화 시켜 5-3 = 2, 7-5 = 2 를 구합니다. 그러면, 각 자리마다 동일하게 2씩 증가하는 것을 알 수 있고, 등차수열에 의해 한수로 인정됩니다.
7. 이와 같이, interval1 과 interval2가 동일하면 hansu가 1씩 증가하고 증가된 hansu 값을 return 해줍니다.
8. 마지막으로 hansuCalculator 함수에서도 hansu를 return 해줍니다.
즉, 99까지의 한수, 그 이후 숫자들 중 한수 값을 더해 반환하여 출력하는 것입니다.