문제 설명
한 자리 정수로 이루어진 문자열 num_str이 주어질 때, 각 자리수의 합을 return하도록 solution 함수를 완성해주세요.
제한사항
3 ≤ num_str ≤ 100
나의 코드
class Solution {
public int solution(String num_str) {
int answer = 0;
for(int i=0; i<num_str.length(); i++) {
answer += num_str.charAt(i)-'0';
}
return answer;
}
}
다른 사람 코드
class Solution {
public int solution(String num_str) {
int answer = 0;
String[] numArr= num_str.split("");
for (String num : numArr){
answer+=Integer.parseInt(num);
}
return answer;
}
}
String 배열
로 변환하여 각각 잘라내어 Integer.parseInt()
메소드 사용
느낀 점
String
타입의 num_str
에서 charAt()
메소드를 사용하면 숫자가 아닌 문자로 나오기 때문에 아스키코드 값을 이용하여 숫자로 변환해줘야 한다. 아스키코드 '0'
의 값은 48, '1'
은 49, '2'
는 50 ⋯ 이기 때문에 '0'
을 빼주면 숫자 값과 동일하게 계산됨을 이용하여 풀었다. 이 외에도 Integer.parseInt()
를 사용하는 방법도 존재한다.