문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/120864
문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
입출력 예시
my_string | result |
"aAb1B2cC34oOp" | 37 |
"1a2b3c4d123Z" | 133 |
풀이
1. my_string 안에 대/소문자 + 자연수로 구성되어있다.
2. my_string 안의 자연수만 추출하여 합을 도출하는 문제이다.
정규식 예시
- 대문자만 추출
String my_string = "aAb1B2cC34oOp";
String[] arr = my_string.split("[a-z]");
System.out.println(arr);
- 소문자만 추출
String my_string = "aAb1B2cC34oOp";
String[] arr = my_string.split("[A-Z]");
System.out.println(arr);
- 자연수만 추출
String my_string = "aAb1B2cC34oOp";
String[] arr = my_string.split("[0-9]");
System.out.println(arr);
- 대/소문자 추출
String my_string = "aAb1B2cC34oOp";
String[] arr = my_string.split("[a-zA-Z]");
//String[] arr = my_string.split("[A-Za-z]"); //사전순으로 하므로 대문자부터 쓰면 Fail
System.out.println(arr);
- 자연수 빼고 추출
String my_string = "aAb1B2cC34oOp";
String[] arr = my_string.split("[^0-9]");
System.out.println(arr);
코드
import java.util.*;
class Solution {
public int solution(String my_string) {
String[] ms = my_string.split("[a-zA-Z]");
System.out.println("ms:" + Arrays.toString(ms));
String[] nums = my_string.split("[^0-9]");
System.out.println("nums:" + Arrays.toString(nums));
int answer = 0;
for(int i = 0; i < nums.length; i++) {
if(!nums[i].isEmpty()) {
answer += Integer.parseInt(nums[i]);
}
}
return answer;
}
}
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Java :: n의 배수 고르기 (0) | 2023.09.14 |
---|---|
[프로그래머스] Java :: 배열 자르기 (0) | 2023.09.13 |
[프로그래머스] Java :: 옷가게 할인 받기 (0) | 2023.09.13 |
댓글