1. 자연수 N의 자리수 합 구하기
정수 N의 각 자리수를 더하려면, 숫자를 10으로 나누고 나머지를 이용하는 방법을 사용한다.
public static int sumOfDigits(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10; // 마지막 자리수 더하기
n /= 10; // 마지막 자리 제거
}
return sum;
}
n % 10
: 자연수 n의 마지막 자리수를 가져온다. 예) 123 % 10 = 3n /= 10
: n에서 마지막 자리수를 제거한다. 예) 123 / 10 = 12
2. 문자열 S의 각 자리수 합 구하기
문자열 S의 각 자리수를 더하려면, 문자열의 각 문자를 숫자로 변환하여 합산한다.
public static int sumOfDigitsFromString(String s) {
int sum = 0;
for (char ch : s.toCharArray()) {
sum += ch - '0'; // 문자에서 '0'을 빼서 숫자로 변환
}
return sum;
}
- s.toCharArray(): 문자열 s를 문자 배열로 변환
- 각 문자를 숫자로 변환하려면 '0'을 빼준다.
- 예: '3' - '0' = 51 - 48 = 3 (문자의 아스키 값을 활용)
'코딩테스트 > 이론' 카테고리의 다른 글
[JAVA] 출력문 println, print, printf 어떤 차이가 있을까? (0) | 2024.11.29 |
---|---|
[JAVA] 문자를 숫자로 변환하기 Char to Int (0) | 2024.11.28 |
[코딩테스트] 문자열 활용 - 문자열 뒤집기(특정단어) with Java (0) | 2024.08.30 |
[코딩테스트] 문자열 활용 - 문자찾기와 바꾸기 with Java (0) | 2024.08.30 |
[코딩테스트] 문자열 with Java (0) | 2024.08.26 |