[문제 설명]
한 자리 정수로 이루어진 문자열 num_str이 주어질 때, 각 자리수의 합을 return하도록 solution 함수를 완성해주세요.
[입출력 예]
num_str | result |
"123456789" | 45 |
"1000000" | 1 |
[차근 차근 생각해보기]
- num_str을 한자리 씩 나눈 후
- String 배열에 담아준 다음
- str의 길이 만큼 돌면서
- 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을 반환한다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - n개 간격의 원소들 (1) | 2023.06.11 |
---|---|
[프로그래머스] - 문자열의 뒤의 n글자 (2) | 2023.06.11 |
[프로그래머스] - n 번째 원소까지 (0) | 2023.06.10 |
[프로그래머스] - 정수 찾기 (0) | 2023.06.10 |
[프로그래머스] - 첫 번째로 나오는 음수 (0) | 2023.06.08 |