https://programmers.co.kr/learn/courses/30/lessons/12931
코딩테스트 연습 - 자릿수 더하기 | 프로그래머스
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출력 예 N answer 123 6 987 24 입출력 예 설명 입출력 예 #1 문제의 예시와 같습니다. 입출력 예 #2 9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
programmers.co.kr
방법 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import java.util.*;
public class Solution {
public int solution(int n) {
String strN = n + "";
int answer = 0;
// '각 자리의 숫자'를 구해서 계산
for (int i = 0; i < strN.length(); i++) {
answer+= (strN.charAt(i) - '0');
}
return answer;
}
}
Colored by Color Scripter
|
방법 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import java.util.*;
public class Solution {
public int solution(int n) {
int answer = 0;
// 일의 자리 값을 더한 후 나누기 10
while (n != 0) {
answer += n % 10;
n /= 10;
}
return answer;
}
}
|
방법 2가 훨씬 빠르다
String으로의 형변환이 속도를 많이 잡아먹는 것 같다
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스]연습문제 : 정수 내림차순으로 배치하기 (level 1) (0) | 2019.11.07 |
---|---|
[프로그래머스]연습문제 : 자연수 뒤집어 배열로 만들기 (level 1) (0) | 2019.11.07 |
[프로그래머스]연습문제 : 이상한 문자 만들기 (level 1) (0) | 2019.11.07 |
[프로그래머스]연습문제 : 약수의 합 (level 1) (0) | 2019.11.07 |
[프로그래머스]연습문제 : 시저 암호 (level 1) (0) | 2019.11.06 |
댓글