반응형
[프로그래머스] Java 코딩테스트 연습 - 숨어있는 숫자의 덧셈 (2)
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/120864
문제
문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
풀이
replaceAll() 메서드로 알파벳 대소문자를 모두 공백으로 바꿔 배열에 숫자만 남도록 한 뒤, split() 메서드로 문자열을 공백을 기준으로 나눠서 문자열 배열 atr에 저장했다.
str을 순회하면서 빈 배열이 아닌 부분만 정수로 변환한 뒤 answer에 더해지도록 했다.
소스코드
class Solution {
public int solution(String my_string) {
int answer = 0;
String[] str = my_string.replaceAll("[a-zA-Z]", " ").split(" ");
for (String s : str) {
if (!s.equals("")) {
answer += Integer.parseInt(s);
}
}
return answer;
}
}
다른 풀이
[^\\d] 를 처음봐서 가져와봤다.
class Solution {
public int solution(String my_string) {
int answer = 0;
my_string = my_string.replaceAll("[^\\d]", " ");
// \\d : [0-9]와 동일한 의미를 가진다.
// ^ : 정규표현식에서 "부정"을 나타내는 메타문자.
// 즉 [^\\d]는 숫자가 아닌 모든 문자를 뜻한다.
String[] str = my_string.split(" ");
for (int i = 0; i < str.length; i++) {
answer += (!str[i].isEmpty()) ? Integer.parseInt(str[i]) : 0;
}
return answer;
}
}
반응형
'코딩테스트연습 > [프로그래머스] Java' 카테고리의 다른 글
[프로그래머스] Java 코딩테스트 연습 - 피자 나눠 먹기 (2) (0) | 2023.07.22 |
---|---|
[프로그래머스] Java 코딩테스트 연습 - 피자 나눠 먹기 (3) (0) | 2023.07.22 |
[프로그래머스] Java 코딩테스트 연습 - 배열의 평균값 (0) | 2023.07.20 |
[프로그래머스] Java 코딩테스트 연습 - 옷가게 할인 받기 (0) | 2023.07.20 |
[프로그래머스] Java 코딩테스트 연습 - 아이스 아메리카노 (0) | 2023.07.20 |