[프로그래머스 Lv0.] 숨어있는 숫자의 덧셈 (2)(JAVA)

gayoung·2023년 2월 10일
0

알고리즘

목록 보기
28/50

1. 문제

문제 설명

문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ my_string의 길이 ≤ 1,000
  • 1 ≤ my_string 안의 자연수 ≤ 1000
  • 연속된 수는 하나의 숫자로 간주합니다.
  • 000123과 같이 0이 선행하는 경우는 없습니다.
  • 문자열에 자연수가 없는 경우 0을 return 해주세요.

입출력 예

my_stringresult
"aAb1B2cC34oOp"37
"1a2b3c4d123Z"133

2. 풀이 과정

내가 생각한 진행 과정

  • 매개변수로 들어온 문자열을 대소문자 알파벳을 기준으로 스플릿하기
    • split_string = ["", "", "1", "2", "", "", "34"] 이런식으로 나온다
  • ""인 경우는 건너뛰고 숫자인 경우 더해주기

최종 코드

public int solution(String my_string) {

        String[] split_string = my_string.split("[a-zA-Z]");  // 매개변수로 들어온 문자열을 대소문자 알파벳을 기준으로 스플릿

        int answer = 0;
        for (int i=0; i<split_string.length; i++) {
            /* _
               _
               _
               1
               2
               _
               34
            */
            if (split_string[i].equals("")) {
                continue;
            } else {
                answer += Integer.parseInt(split_string[i]);
            }
        }
        return answer;
    }

3. 알게된 것

  • 정규식으로 split하는 방법

0개의 댓글

관련 채용 정보