Level. 0
문제
문자열 my_string이 매개변수로 주어집니다.
my_string은 소문자, 대문자, 자연수로만 구성되어 있습니다.
my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해 주세요.
* 제한사항
- 1 ≤ my_string의 길이 ≤ 1,000
- 1 ≤ my_string 안의 자연수 ≤ 1,000
- 연속된 수는 하나의 숫자로 간주합니다.
- 000123과 같이 0이 선행하는 경우는 없습니다.
- 문자열에 자연수가 없는 경우 0을 return 해주세요.
풀이
class Solution {
public int solution(String my_string) {
int answer = 0;
String num = "";
my_string += 'A';
for(int i=0; i<my_string.length(); i++){
if(my_string.charAt(i) >= '0' && my_string.charAt(i) <= '9'){
num += my_string.charAt(i);
continue;
}
if(num.length() > 0){
answer += Integer.parseInt(num);
num = "";
}
}
return answer;
}
}
다른 풀이
class Solution {
// [a-zA-Z0-9] : 알파벳과 숫자
public int solution(String my_string) {
int answer = 0;
String[] nums = my_string.split("[a-zA-Z]");
for(String num : nums){
if(num.length() > 0)
answer += Integer.parseInt(num);
}
return answer;
}
}
split에 정규식을 사용하여 알파벳을 기준으로 문자열을 잘라주었다.
- [a-z] : 소문자
- [A-Z] : 대문자
- [a-zA-Z] : 알파벳
- [a-zA-Z0-9] : 대문자
https://school.programmers.co.kr/learn/courses/30/lessons/120864
'Algorithm > Programers - Java' 카테고리의 다른 글
[프로그래머스(Java)] A로 B 만들기 (0) | 2023.11.26 |
---|---|
[프로그래머스] 문자열 뒤집기 / StringBuilder.reverse() (0) | 2023.11.18 |
[프로그래머스(Java)] 가까운 수 / Arrays.sort() (1) | 2023.11.18 |
[프로그래머스(Java)] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 / lastIndexOf() (0) | 2023.11.05 |
[프로그래머스] 글자지우기 (0) | 2023.11.01 |