본문 바로가기

코딩테스트

프로그래머스 코테 숨어있는 숫자의 덧셈 (1) JAVA

코딩테스트 입문 프로그래머스 숨어있는 숫자의 덧셈 (1)

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr

문제 설명 : 문자열 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

 

아스키 코드 - 나무위키

아래 표는 아스키 코드 중 제어 문자와 확장 아스키 코드를 제외한 부호(영문 자판에 사용되는 부호)를 정리한 것이다. 10진수부호10진수부호10진수부호10진수부호0320568080P104h033!0579081Q105i034"058:082

namu.wiki

 

728x90
300x250