개인공부/알고리즘

프로그래머스 - 숨어있는 숫자의 덧셈(2) (Kotlin)

KEEMSY 2023. 7. 27. 11:42

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내가 생각한 이 문제의 핵심은 연속된 수는 하나의 숫자로 간주한다는 것이다. 그리고 문자열 내의 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