728x90
반응형
- 문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
- 제한사항
N의 범위 : 100,000,000 이하의 자연수
- 나의 풀이
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
String str = String.valueOf(n);
for(int i = 0; i < str.length(); i++){
answer += Integer.parseInt(String.valueOf(str.charAt(i)));
}
return answer;
}
}
정수인 n값을 문자열로 변환하고 문자열 길이만큼 for문을 돌려 charAt함수를 이용해 문자열을 순차적으로 하나씩 꺼내서 다시 정수로 변환한 후에 answer 값을 하나씩 더해 값을 return해준다.
- 다른사람의 풀이
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;
}
}
n값을 문자열로 만들어서 다시 정수로 변환해서 문제를 해결한 나와 다르게, 이 분은 while문을 통해 n값을 10으로 나눈 나머지 값을 구해 값을 하나씩 더하는 방법을 이용했다. 해당 풀이는 나의 풀이보다 효율성에서도 더 좋아보였고, 코드를 보는 순간.. 단번에 어떤 의도의 코드인지 한눈에 보여 가독성 또한 좋아보여서 이 풀이를 써보았다.
728x90
반응형
'Algorithm > Programmers' 카테고리의 다른 글
프로그래머스[Level 1] - 정수 제곱근 판별 (java) (0) | 2022.10.03 |
---|---|
프로그래머스[Level 1] - 평균 구하기 (java) (0) | 2022.09.15 |
프로그래머스[Level 1] - 나머지가 1이 되는 수 찾기 (java) (0) | 2022.09.14 |
프로그래머스[Level 1] - 직사각형 별 찍기 (java) (0) | 2022.09.13 |