음이 아닌 정수를 9로 나눈 나머지는 그 정수의 각 자리 숫자의 합을 9로 나눈 나머지와 같은 것이 알려져 있습니다.
이 사실을 이용하여 음이 아닌 정수가 문자열 number로 주어질 때, 이 정수를 9로 나눈 나머지를 return 하는 solution 함수를 작성해주세요.
number | result |
---|---|
"123" | 6 |
"78720646226947352489" | 2 |
function solution(number) {
var answer = 0;
for (let i = 0; i < number.length; i++) {
answer += parseInt(number.substring(i, i + 1));
}
return answer % 9;
}
주어진 number 문자열의 각 문자에 대한 반복문을 실행했다.
number 문자열에서 인덱스 i
부터 i+1
까지의 부분 문자열 반환한다. 그러면 한글자의 문자열
이 됨!
parserInt
를 써서 정수로 변환했고,
변환된 정수를 answer 변수에 더하고 answer를 9로 나눈 나머지값을 반환한다.
예를 들면,
number가 "1234"
라면:
i = 0
일 때: number.substring(0, 1)
은 "1"
이 되고, parseInt("1")은 1이 된다.. answer는 0 + 1 = 1
i = 1
일 때: number.substring(1, 2)
은 "2"
이 되고, parseInt("2")은 2가 된다. answer는 1 + 2 = 3
i = 2
일 때: number.substring(2, 3)
은 "3"
이 되고, parseInt("3")은 3이 됩다. answer는 3 + 3 = 6
i = 3
일 때: number.substring(3, 4)
은 "4"
가 되고, parseInt("4")은 4가 됩다. answer는 6 + 4 = 10
마지막으로, answer % 9을 반환하므로 10 % 9 = 1
먼저 이런 예시를 머리에 그려놓고 코드를 짜면 조금 더 쉽게 짤 수 있다!