Algorithm/Programers - Java
[프로그래머스(Java)] 숨어있는 숫자의 덧셈 (2) / split() 정규식
StrongMin
2023. 11. 18. 16:17
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
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr