프로그래머스/Lv. 0(코딩테스트 입문)

[프로그래머스 코딩테스트] 숨어있는 숫자의 덧셈(1)(Java)

Sigfriede 2023. 3. 27. 22:55

  문제 설명

  문자열 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 intString = my_string.replaceAll("[^0-9]","");
        for (int i = 0; i < intString.length(); i++) {
            answer += Character.getNumericValue(intString.charAt(i));
        }
        return answer;
    }
}

  이번에도 마찬가지로 replaceAll과 정규식을 통해 숫자 이외의 문자는 제거해주었습니다. for문으로 intString의 길이만큼 순회하면서, i번째 자리의 숫자를 복합 대입 연산자(+=)를 통해 하나씩 더해주었습니다. 여기서 getNumbericValue는 숫자 형태의 char형을 int로 바꿔주는 역할을 합니다.

  다른 사람들의 풀이를 보니 아스키코드를 활용한 참신한 코드를 쓸 수도 있었네요.

 

  replace를 이용한 다른 문제(replace와 replaceAll의 차이 설명)

  [프로그래머스 코딩테스트] 특정 문자 제거하기(Java) https://sigfriede.tistory.com/34

  replaceAll을 이용한 다른 문제

  [프로그래머스 코딩테스트] 모음 제거(Java) https://sigfriede.tistory.com/44

  replaceAll을 이용한 다른 문제

  [프로그래머스 코딩테스트] 문자열 정렬하기(Java) https://sigfriede.tistory.com/45