문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
제한사항
- N의 범위 : 100,000,000 이하의 자연수
입출력 예
입출력 설명
입출력 예 #1
- 문제의 예시와 같습니다.
입출력 예 #2
- 9 + 8 + 7 = 24이므로 24를 return 하면 됩니다
코드
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
String num = String.valueOf(n);
for(int i=0; i<num.length(); i++) {
answer += Character.getNumericValue(num.charAt(i));
}
return answer;
}
}
풀이
n을 문자열로 변환하여 num에 저장해준다. 반복문을 통해 num을 문자로 변환한 뒤 이를 정수로 변환해 answer에 더해준다.
다른 코드와 풀이
아래의 코드는 다른 사람들이 작성한 것들로, 내 코드와 비교, 참고하기 위해 가져왔다.
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
while(n!=0){
answer += n%10;
n /= 10;
}
return answer;
}
}
n가 0이면 종료되는 반복문에서 n을 10으로 나눴을 때의 나머지를 answer에 더해준 후, 그 다음 자릿수(일의 자리 -> 십의 자리 -> 백의 자리 -> ...)를 더해주기 위해 10을 나눠준다.
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
int len = (int)Math.log10(n)+1;
for(int i = 0; i < len; i++) {
answer += n%10;
n = n/10;
}
return answer;
}
}
Math.log10()는 밑이 10인 상용로그를 반환하기 때문에 +1을 해주면 해당 정수의 길이를 구할 수 있다. for문을 이용해 n을 10으로 나눈 나머지를 구해 answer에 더하고 n을 10으로 나눠 n에 저장해주는 것을 반복하다보면 자릿수를 더할 수 있다.
'Coding Test' 카테고리의 다른 글
231008 문자열 내 p와 y의 개수 - Level 1 (0) | 2023.10.08 |
---|---|
231007 자연수 뒤집어 배열로 만들기 - Level 1 (0) | 2023.10.07 |
231006 x만큼 간격이 있는 n개의 숫자 - Level 1 (1) | 2023.10.06 |
231005 공배수 - Level 0 (1) | 2023.10.05 |
231004 제곱수 판별하기 - Level 0 (1) | 2023.10.04 |