반응형
12931번 문제
코딩테스트 연습 - 자릿수 더하기 | 프로그래머스 (programmers.co.kr)
풀이
- 생각
각 자릿수의 합을 구하는 방법은 0이 될 때까지 10으로 나눈 나머지를 더하기
✅ 예) 123
n | n/10 | n%10 | sum |
12345 | 1234 | 5 | 0 + 5 = 5 |
1234 | 123 | 4 | 5 + 4 = 9 |
123 | 12 | 3 | 9 + 3 = 12 |
12 | 1 | 2 | 12 + 2 = 14 |
1 | 0 | 1 | 14 + 1 = 15 |
- 1번 풀이
public int solution(int n) {
int sum = 0;
while (n != 0) {
sum += n % 10;
n /= 10;
}
return sum;
}
- n이 0이 될 때까지 n을 나눈 나머지의 합을 구한다.
- 2번 풀이
public int solution(int n) {
String nStr = String.valueOf(n);
return nStr.chars().sum() - (48 * nStr.length());
}
- chars() 메소드로 String 을 IntStream 으로 가져온다.
- sum() 메소드로 합산을 구한다.
- 단 char 타입 '1' 을 정수형으로 변환하기 위해서는 48을 빼야 한다. ex) 1 = '1' - 48
- 그러므로 합산에서 자릿수만큼 48을 뺀다.
반응형
'Algorithm > Java' 카테고리의 다른 글
프로그래머스 - 문자열을 정수로 바꾸기 java (0) | 2022.01.04 |
---|---|
프로그래머스 - 약수의 합 java :: 12928 (0) | 2022.01.02 |
프로그래머스 - 정수 내림차순으로 배치하기 java (0) | 2021.12.27 |
프로그래머스 - 제일 작은 수 제거하기 java (0) | 2021.12.22 |
프로그래머스 - 최대공약수와 최소공배수, 유클리드 호제법 java (0) | 2021.12.22 |