Blog

숨어있는 숫자의 덧셈 (2)

문제 #

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

  • 제한사항
    • 1 ≤ my_string의 길이 ≤ 1,000
    • 1 ≤ my_string 안의 자연수 ≤ 1000
    • 연속된 수는 하나의 숫자로 간주합니다.
    • 000123과 같이 0이 선행하는 경우는 없습니다.
    • 문자열에 자연수가 없는 경우 0을 return 해주세요.
  • 입출력 예
    my_string result
    “aAb1B2cC34oOp” 37
    “1a2b3c4d123Z” 133

나의 풀이 #

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        String str = "";
        
        for (int i = 0; i < my_string.length(); i++) {
            char c = my_string.charAt(i);
            // 연속된 수가 있을 경우 c는 숫자형이므로 str에 추가됨
            if (Character.isDigit(c)) {
                str += c;
            }
            // 문자열을 만날경우 지금까지의 str값을 answer에 더해줌
            else if (!str.isEmpty()) {
                answer += Integer.parseInt(str);
                str = ""; // 계산을 마쳤기 때문에 값을 비워줌
            }
        }
        
        //가장 마지막이 문자로 끝나지 않을 경우
        if (!str.isEmpty()) {
            answer += Integer.parseInt(str);
        }
        
        return answer;
    }
    
}
  • 코드 해설을 적는다.

다른 사람의 풀이 #

//다른 사람의 풀이중 참조할 코드를 적는다.
  • 코드 해설을 적는다.

관련개념 학습 #

  • 관련 개념을 찾아서 공부한 내용을 적는다.
  • ctrl + p로 내가 필기한 내용 중에서 관련내용이 있는지 찾아서 그 페이지의 링크를 복사하여 붙혀넣는다.
  • 필기 페이지에도 이 문제의 링크를 복사하여 “관련 문제"라고 써놓고 붙혀넣는다.