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

Benjamin·2023년 2월 5일
0

프로그래머스

목록 보기
9/58

내 풀이

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        for(int i=0; i<my_string.length(); i++) {
            char ch = my_string.charAt(i);
            if(Character.isDigit(ch)) {
                answer += (int)ch -'0';
            }
        }
        return answer;
    }
}

for문을 돌면서 Character.isDigit()을 사용해 문자 하나씩 숫자인지 판단해, 숫자면 더해주는 로직을 사용했다.

다른 풀이

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        String str = my_string.replaceAll("[^0-9]","");

        for(char ch : str.toCharArray()) {
            answer += Character.getNumericValue(ch);
        }

        return answer;
    }
}
  1. replaceAll()을 사용했다.
    정규표현식이 첫번째 매개변수로 들어간다.
  • [0-9] = 0부터 9까지의 숫자를 모두 "" 로 변환한다.(없애는것과 마찬가지)
  • [^0-9] = '^'은 not의 의미이다. 따라서 0부터 9까지의 숫자를 제외한 모두를 모두 "" 로 변환한다.(없애는것과 마찬가지)
  1. toCharArray()는 문자를 하나씩 분리해 배열의 값으로 넣어 배열을 반환한다.
    나는 이전에 이걸 무조건 char[] 배열로 받아서 사용했는데, 변수를 따로 만들어서 넣지않아도 향상된 for문에서 바로 사용할 수 있다.

  2. char형을 int형으로 변환해주는 Character.getNumericValue(char ch)를 사용한다.

0개의 댓글