728x90

[문제 설명]

한 자리 정수로 이루어진 문자열 num_str이 주어질 때, 각 자리수의 합을 return하도록 solution 함수를 완성해주세요.

 

[입출력 예]

num_str result
"123456789" 45
"1000000" 1

 

[차근 차근 생각해보기]

  1. num_str을 한자리 씩 나눈 후
  2. String 배열에 담아준 다음
  3. str의 길이 만큼 돌면서
  4. str의 i번째 요소를 정수로 변환하여 answer에 더해준다.

[결과]

class Solution {
    public int solution(String num_str) {
        int answer = 0;
        
        String[] str = num_str.split("");

        for(int i = 0; i < str.length; i++){
            answer += Integer.parseInt(str[i]);
        }
        
        return answer;
    }
}

 

[반성할 점]

  • 처음에 split메소드로 나누어 주지 않고 num_str 길이까지 돌면서 charAt()으로 요소를 가져왔다.
  • 하지만 char 타입은 정수로 파싱이 되지 않아
  • split으로 나눈 다음 배열에 담아주고 i번째 요소를 정수로 변환하여 더해주는 방식을 택했다.
  • 찾아보니 charAt()으론 Character.getNumericValue() 메소드로 정수를 변환해 줄 수 있다고 한다.
    • 대신 주어진 문자가 0 ~ 9사이의 숫자인 경우에만 해당 숫자를 반환하고 그 외엔 -1을 반환한다.
728x90

+ Recent posts