

using System;
public class Solution
{
public int solution(int n)
{
int answer = 0;
int a = (int)Math.Log10(n);
for (int i = a; i >= 0; i--)
{
int b = n / (int)Math.Pow(10, i);
n = n - b * (int)Math.Pow(10, i);
answer += b;
}
return answer;
}
// 윗 부분만 정답, 아래 부분은 확인용
static void Main(string[] args)
{
Solution s = new Solution();
Console.WriteLine(s.solution(1234));
}
}
★Math.Pow(밑, 지수): 제곱근을 표현하는 메서드
10^n이런 식으로 처음에 사용했다가 이상한 값이 나오길래 혹시나 해서 검색해 봤다더니 다른 메서드라 존재했었다.
i는 0부터 a의 지수 만큼 반복
( a = (int)(Math.Log(1234)) = 3 (최대 10의 3승))
b는 해당 숫자의 앞자리를 추출하기 위한 과정
(1234 -> 1 추출)
n에 추출한 숫자부분을 제거한 남은 숫자
(1234 -> 234)
answer에 추출한 숫자를 더함
(answer = 1, 추출한 숫자를 answer에 더함)
이걸 반복해서
answer = 1 + 2 + 3 + 4 순으로 더해진다.