숨어있는 숫자의 덧셈

Wook·2024년 9월 15일

🧩코딩테스트

목록 보기
34/46
post-thumbnail

문제

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

조건

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

예시

my_stringresult
"aAb1B2cC34oOp"10
"1a2b3c4d123"16

풀이

  • String의 메서드 중 replaceAll()을 사용하여 문자를 제거한다
  • 정규표현식에는 숫자, 영어 소문자, 대문자가 들어갈 수 있는데
    소문자로 한번, 대문자로 한번 문자를 제거할 수 있다
  • 또는 예외를 나타내는 문자 (^)를 사용하여 숫자를 제외한 모든 것을 나타낸 정규표현식으로 한번에 제거할 수도 있다
  • char 타입을 int 타입에 연산을 사용할 경우 '0'을 빼주거나 getNumericalValue() 메서드를 사용할 수 있다.

코드

class Solution {
    public int solution(String my_string) {
        my_string = my_string.replaceAll("[a-z]","")
        					 .replaceAll("[A-Z]","");
        int answer = 0;
        
        for(int i = 0; i < my_string.length(); i++){
            answer += my_string.charAt(i) - '0';
        }
        return answer;
    }
    
    public int solution2(String my_string) {
        my_string =  my_string.replaceAll("[^0-9]", "");
        int answer = 0;
        
        for (int i = 0; i < my_string.length(); i++) {
            answer += Character.getNumericValue(my_string.charAt(i));
        }
        return answer;
    }
    
}
profile
Keep going

0개의 댓글