1. 문제 출처
2. 문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
3. 제한사항
- 1 ≤ my_string의 길이 ≤ 1,000
- 1 ≤ my_string 안의 자연수 ≤ 1000
- 연속된 수는 하나의 숫자로 간주합니다.
- 000123과 같이 0이 선행하는 경우는 없습니다.
- 문자열에 자연수가 없는 경우 0을 return 해주세요.
4. 입출력 예
5. 풀이
class Solution {
fun solution(my_string: String): Int {
var answer: Int = 0
var regex=Regex("\\d+") //연속된 숫자를 나타내기 위한 정규표현식
var parts=regex.findAll(my_string) //정규표현식의 모든 문자열을 찾아 리스트로 반환
for(part in parts){
answer+=part.value.toInt() //parts의 각요소를 형변환하여 모두 더한다.
}
return answer
}
}
정규표현식 \\d+를 활용해 연속된 숫자를 나타내었다. 그리고 정규표현식 함수 findAll()을 활용해 모든 문자열을 찾아 parts에 저장하였다. 그리고 parts의 각요소를 Int형으로 형변환하여 모두 더하는 식으로 구현하였다.