내가 생각한 이 문제의 핵심은 연속된 수는 하나의 숫자로 간주한다는 것이다. 그리고 문자열 내의 char 를 Int 로 변환한다면 아스키코드로 변환이 된다는 것을 주의해야한다.(나는 이것을 몰랐다..)
- 문자열의 요소를 하나씩 꺼내어 해당 문자가 숫자인지 확인(isDisit())한다.
- 문자열이 숫자라면, currentNumber 에 10을 곱해 자리수를 옮기고, 해당 문자를숫자로 변환하여 더한다.
- 문자열이 숫자가 아닌경우, currentNumber 을 answer에 더한 뒤, currentNumber 을 초기화 한다.
class Solution {
fun solution(my_string: String): Int {
var answer = 0
var currentNumber = 0
for (char in my_string) {
if (char.isDigit()) {
currentNumber = currentNumber * 10 + char.toString().toInt()
} else {
answer += currentNumber
currentNumber = 0
}
}
answer += currentNumber
return answer
}
}
728x90
'개인공부 > 알고리즘' 카테고리의 다른 글
프로그래머스 - 최댓값 만들기(2) (Kotlin) (0) | 2023.07.28 |
---|---|
프로그래머스 - 다항식 더하기 (Kotlin) (0) | 2023.07.27 |
프로그래머스 - 안전지대 (Kotlin) (0) | 2023.07.26 |
프로그래머스 - 외계어 사전 (Kotlin) (0) | 2023.07.24 |
프로그래머스 - 문자열 정렬하기(2) (Kotlin) (0) | 2023.07.24 |