코테/JAVA

[프로그래머스] LV.0 숨어있는 숫자의 덧셈(1)

slown 2023. 3. 13. 20:34

문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.


제한사항

  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.

입출력 예

my_string  result
"aAb1B2cC34oOp" 10
"1a2b3c4d123" 16

작성답안

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        String str = my_string
            .replaceAll("[^0-9]","");
        String[]strArr = new String[str.length()];    
        strArr = str.split("");
        
        for(int i=0;i<strArr.length;i++){
            answer += Integer.parseInt(strArr[i]);
        }
        return answer;
    }
}

푸는 과정

-String 안에 있는 모든 숫자의 합을 return하는 문제이다.

생각한 과정은 이러하다.

1.문자열 안에 있는 숫자를 뽑는다.

->String str = my_string.replaceAll("[^0-9]","");

->여기에서 replaceAll() 메서드replaceAll(대상문자열,원하는대로 바꾸는 문자열)으로 

   대상문자열은 정규식을 활용을 해서 0에서9까지로 정하고 바꾸고 싶은 문자열에는 ""써서

   숫자를 제외한 모든 문자를 바꾼다.

2.뽑은 숫자를 배열에 넣고 split()을 사용을 해서 숫자에 ","로 구분짓게 한다.

->String[]strArr = new String[str.length()];

3.뽑은 숫자의 수의 길이만큼 반복문으로 돌린다.

4.반복문을 돌리면서 배열에 있는 숫자를 형변환을 해서 결과값 변수에 넣는다.

-> answer += Integer.parseInt(strArr[i]);