알고리즘/프로그래머스
자릿수 더하기(JAVA)
mrban
2022. 1. 18. 21:42
1. 문제
자연수 N을 매개변수로 받아, N의 각 자릿수의 합을 구해서 return 하는 함수를 만드시오.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 한다.
2. 제한
N의 범위 : 100,000,000 이하의 자연수
3. 정답
public class Solution {
public int solution(int n) {
int answer = 0;
int length = (int)(Math.log10(n)+1);
for (int i = 0; i < length; i++) {
answer += (n % 10);
n /= 10;
}
return answer;
}
}
4. 설명
4-1. Math.log10()을 통해 입력받은 자연수 n에 로그값을 씌워서 나온 값에 1을 더하고 int형변환을 해주면 n의 자릿수가 나온다. 예를 들어 Math.log10(1000)은 3이고 여기에 1을 더하면 4가 나와 자릿수를 구할 수 있다.
4-2. for문을 자연수 n의 자릿수만큼 돌리면서 n을 10으로 나눴을 때의 나머지 부분이 n의 일의자리 값과 같다라는 점을 이용하여 n을 10으로 계속 나눠주면서 일의자리 값을 계속 떼어내어 answer에 더해준다.
4-3. 예를 들어 n이 123이면 123 % 10 = 3을 answer += 3하고 n은 123 / 10 = 12로 바꿔준다. 이걸 반복하는 것이다.
4-4. 자릿수를 다 더한 answer값을 return한다.