코딩테스트 입문 프로그래머스 숨어있는 숫자의 덧셈 (1)
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
문제 설명 : 문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
class Solution {
public int solution(String my_string) {
int answer = 0;
for(int i=0;i<my_string.length();i++){
// System.out.println(my_string.charAt(i));
//숫자 0 은 유니코드 값으로 48 , 숫자 9는 유니코드값으로 57
if(my_string.charAt(i) >= 48 && my_string.charAt(i) <= 57 ){
//System.out.println(my_string.charAt(i));
//answer += my_string.charAt(i) - '0';
answer += Character.getNumericValue(my_string.charAt(i));
}
}
return answer;
}
}
answer 값을 반환할 때, -'0'을 해주거나 Character.getNumericValue() 메소드를 사용하면 된다.
answer += my_string.charAt(i) - '0';
answer += Character.getNumericValue(my_string.charAt(i));
Character.getNumericValue()는 숫자형태의 char 값을 int형으로 변경해준다.
- '0'이 의미하는 것은 아스키코드를 보면 문자 0~9는 48~57이기 때문에 아스키코드에서 문자'0' 코드를 빼주면 원하는 숫자가 된다.
참고 아스키코드 나무위키 :
https://namu.wiki/w/%EC%95%84%EC%8A%A4%ED%82%A4%20%EC%BD%94%EB%93%9C
728x90
300x250