문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다제한사항
N의 범위 : 100,000,000 이하의 자연수
입출력 예
N(123) answer(6)
N(987) answer(24)입출력 예 설명
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
import java.util.*;
public class Solution {
public int findNum(int n){
int range=100000000;
int plus= 0;
int answer=0;
int last=0;
while(range>=10){
plus=n/range;
n = n%range;
range= range/10;
answer=answer+plus;
last=n;
}
answer=answer+last;
return answer;
}
public int solution(int n) {
int answer = this.findNum(n);
return 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;
}
}
다른 풀이 1
전체적으로 짧고 간결하게 코드를 작성함.
반복문을 활용하여 쉬운 코드, 가독성이 쉬운 코드로 작성함.
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
String[] array = String.valueOf(n).split("");
for(String s : array){
answer += Integer.parseInt(s);
}
return answer;
}
}
다른 풀이 2
가독성은 좋아보이지만, 효율성이 떨어져보인다.
수학공식이 아닌 직관적인 코드로 작성함
수학공식을 접목해서 정답을 도출해 냈지만, 자바연산자를 정확히 파악하지 못해 코드가 복잡해졌다. 더 짧고 가독성이 쉬운 코드를 만들도록 노력해야겠다.