자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
String s = Integer.toString(n);
for(int i = 0; i < s.length(); i++){
int N = Integer.parseInt(s.charAt(i));
answer+= N;
}
return answer;
}
}
뭐가,,,잘못이지 한참을 바라보았다.
찾아보니 Integer.parseInt
이 메서드는 String
을 int
로 변환하는 메서드인데 나는 charAt
를 사용하여 하나의 문자만 넘겨준 것이 문제였다.
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
String s = Integer.toString(n);
for(int i = 0; i < s.length(); i++){
int N = Integer.parseInt(String.valueOf(s.charAt(i)));
answer+= N;
}
return answer;
}
}
그래서 문자로 변환한 것을 문자 하나하나로 쪼갠 것을 다시 문자열로 만들어서 더해주는 방법을 사용하였다.
정답은 나왔지만 사라지지 않는 찝찝함에 다른 사람 코드를 한번 보았다.
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
while(true){
answer+=n%10;
if(n<10)
break;
n=n/10;
}
return answer;
}
}
이 사람은 while
문을 활용하여 n이 10보다 작을 때 까지 10으로 나눈 나머지를 answer에 더하는 방식을 사용하였다.
나는 while
문을 잘 쓰는 사람이 참 멋져보인다.
나도 while
문을 조금 더 활용하도록 노력해야겠다.