문제 내용
문제
단어에 숫자가 숨어있다. 이 숫자를 히든 넘버라고 한다. 알파벳 대/소문자와 숫자로 이루어진 단어가 주어졌을 때, 모든 히든 넘버의 합을 구하는 프로그램을 작성하시오.
단어와 히든 넘버는 아래와 같은 성질을 갖는다.
- 연속된 숫자는 한 히든 넘버이다.
- 두 히든 넘버 사이에는 글자가 적어도 한 개 있다.
- 히든 넘버는 6자리를 넘지 않는다.
입력
첫째 줄에 단어의 길이 n (1 ≤ n ≤ 5,000,000)이 주어진다. 둘째 줄에는 단어가 주어진다. 단어는 알파벳 대/소문자와 숫자(0-9)로 이루어져 있다.
출력
입력으로 주어진 단어에 숨어있는 모든 히든 넘버의 합을 출력한다. 만약, 히든 넘버가 없는 경우에는 0을 출력한다.
예제 입력 | 예제 출력 |
14 ab13c9d07jeden |
29 |
문제 풀이
https://codechacha.com/ko/kotlin-extract-integers-from-string/
위 링크를 참고해서, 정규식을 사용해서 문자열을 제거하고, 합을 구했다. 이때, 공백이 생길 수 있기때문에 공백이 아닐때만 숫자로 바꿔서 넣어 줄수 있게 했다. 이때 주의할 점은 int범위를 벗어날 수도 있다는 것이다.
</>̆̈ 코드
fun main() {
val n = readLine()!!.toLong()
val word = readLine()!!.replace("[^0-9]".toRegex(), " ").split(" ")
print(word.sumOf { if(it.isNotEmpty()) it.toLong() else 0 })
}
링크