자릿수 더하는 알고리즘을 오랫만에 풀어보니
너무 코드가 길어지고 "이게 맞나..?" 싶은 코드가 작성되었다.
최적화 된 코드가 너무 궁굼해서 찾아봤다.
너무도 깔끔하게 작성된 코드에 감명깊었다.
using System;
public class Solution {
public int solution(int n) {
int answer = 0;
while(n>0){
answer += n % 10;
n = n / 10;
}
return answer;
}
}
큰 그림으로 보면 숫자를 계속 토막내듯이 자릿수를 줄이면서
1의 자릿수를 더하기는 느낌이다.
10으로 나눈 나머지를 계속 더하고 10으로 나눠서 자리수를 낮춘다.
나중에도 유용하게 쓸 수 있는 코드라 생각된다.
더 응용해서 자릿수를 더하는 게 아니라
각 자릿수를 저장하는 것으로 해보자.