Contents
정답문제 설명
문자열
my_string
이 매개변수로 주어집니다. my_string
안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.제한사항
- 1 ≤
my_string
의 길이 ≤ 1,000
my_string
은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.
입출력 예
my_string | result |
"aAb1B2cC34oOp" | 10 |
"1a2b3c4d123" | 16 |
입출력 예 설명
입출력 예 #1
- "aAb1B2cC34oOp"안의 한자리 자연수는 1, 2, 3, 4 입니다. 따라서 1 + 2 + 3 + 4 = 10 을 return합니다.
입출력 예 #2
- "1a2b3c4d123Z"안의 한자리 자연수는 1, 2, 3, 4, 1, 2, 3 입니다. 따라서 1 + 2 + 3 + 4 + 1 + 2 + 3 = 16 을 return합니다.
유의사항
- 연속된 숫자도 각각 한 자리 숫자로 취급합니다.
기본적으로 주어진 코드 :
class Solution {
public int solution(String my_string) {
int answer = 0;
return answer;
}
}
정답
class Solution {
public int solution(String my_string) {
int answer = 0;
for (int i = 0; i < my_string.length(); i++) {
try {
answer += Integer.parseInt(String.valueOf(my_string.charAt(i)));
} catch (Exception e) {}
}
return answer;
}
}
코드 설명
메서드 정의 및 변수 초기화
public int solution(String my_string) {
int answer = 0;
solution
메서드는 문자열my_string
을 입력받아, 각 문자를 숫자로 변환한 값의 합을 반환합니다.
answer
변수는 합계를 저장하기 위해 초기화됩니다.
문자열 순회 및 숫자 변환
for (int i = 0; i < my_string.length(); i++) {
try {
answer += Integer.parseInt(String.valueOf(my_string.charAt(i)));
} catch (Exception e) {}
}
for
루프를 사용하여 문자열my_string
의 각 문자를 순회합니다.
- 각 문자를
String.valueOf
로 문자열로 변환하고, 이를Integer.parseInt
를 통해 정수로 변환합니다.
- 변환된 정수를
answer
에 더합니다.
- 만약 변환 중에 예외가 발생하면 (
Exception
), 이를 무시하고 계속 진행합니다. 이는 숫자가 아닌 문자를 처리할 때 유용합니다.
결과 반환
return answer;
answer
변수에 저장된 숫자들의 합을 반환합니다.
예제
입력:
"a1b2c3"
- 순회 및 변환:
- 'a': 변환 실패 (무시)
- '1':
1
로 변환 후 합계 내answer
에 추가 (answer = 1) - 'b': 변환 실패 (무시)
- '2':
2
로 변환 후 합계 내answer
에 추가 (answer = 3) - 'c': 변환 실패 (무시)
- '3':
3
로 변환 후 합계 내answer
에 추가 (answer = 6)
- 출력:
6
Share article