정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요
| n | result |
|---|---|
| 1234 | 10 |
| 930211 | 16 |
나의 문제 풀이
class Solution {
public int solution(int n) {
int answer = 0;
String[] str = String.valueOf(n).split("");
for(String s:str){
answer += Integer.parseInt(s);
}
return answer;
}
}
다른 사람의 문제 풀이
class Solution {
public int solution(int n) {
int answer = 0;
while (n > 0) {
answer += n % 10;
n /= 10;
}
return answer;
}
}
int를 String으로 형변환해서 String 배열로 만들고,
배열 안의 String을 int로 형변환해서 각 자릿수를 더하였다.
10으로 나눈 나머지가 각 자릿수가 된다!
두 코드의 정확성을 비교해보았다
형 변환 코드
숫자 → 문자열 변환 → 정규식 split → 문자열 배열 생성 → 문자열 → 숫자 변환
불필요한 객체 생성과 파싱 과정이 많아서 느림.

나머지 연산 코드
메모리 할당 거의 없고, CPU 정수 연산만 하기 때문에 훨씬 빠름.
